更改PHP临时目录
我有一个用于媒体转换的网站,用户可以上传视频,音频或图像文件,并将其转换为3种流行格式。 转换脚本工作正常,但我遇到了文件上传到tmp目录的问题。 我已经尝试了两种情况,我都很好,但都不起作用,在我看来是权限相关,但我似乎可以解决这个问题。 我现在在本地工作,而我正在解决问题。
情景1:
情景2:
将XMLHttpRequest发送到PHP文件的网站以及PHP文件本身驻留的网站都是IIS网站,因此我假设该脚本正在以IIS_IUSRS的身份运行。
编辑:临时文件不再为方案1创建,不能找出为什么我假设玩权限弄乱了东西,因为代码没有改变。 我已经给IIS_USRS和USERS的修改尝试让它再次运行,但没有运气:(尽管错误日志仍在写入相同的文件夹......怪异的
注意:我发送的$ _FILES变量的“tmp_name”值仍然具有“C: WINDOWS Temp '文件名'”的值,但该文件不存在
编辑:另一个新的发展,它似乎不是一个权限问题,因为我可以通过$ temp_file = tempnam(sys_get_temp_dir(),'Test')创建一个临时文件; 但它显然不包含上传的数据,所以它不能解决我的问题
这不是一个解决的问题,更是一种解决方法。 这个问题似乎与$_FILES['file']['tmp_name'];
当我回应内容时,它看起来像我期望的,但没有出现文件。 因此,我不必利用自然发生的这一过程,而必须采取手动方法。 我所做的是以下几点:
创建一个临时文件
$temp_file = tempnam(ini_get('upload_tmp_dir'), 'php');
然后添加$ _POST请求期间创建的临时文件中的内容。 (即使当我查看目录时文件不是这样,那么$ _FILES变量中的一些内容)
file_put_contents($temp_file, file_get_contents($_FILES['file']['tmp_name']));
我有我的临时文件进行处理。
由于APPLICATION POOLS上的一项设置,PHP忽略了upload_tmp_dir。 这不是php-cgi.exe或php.ini或权限问题。 转到遇到问题的网站的应用程序池:1.右键单击2.选择高级设置3.滚动到LOAD USER PROFILE并将其设置为FALSE。
那为我做了诡计。
链接地址: http://www.djcxy.com/p/72801.html上一篇: Changing PHP Temp Directory
下一篇: Can't create temporary file in PHP despite the temp directory exists