【发布时间】:2012-09-13 22:16:29
【问题描述】:
我正在使用Valums file uploader 通过带有进度条的网页上传文件。几乎一切正常,但我无法更改默认的 tmp 目录,该目录存储文件在上传期间。
文件应存储在/upload 目录中,而不是默认系统/tmp 目录中,因为/tmp 安装在大小限制为4 MB 的RAM 磁盘中,用户将上传大约10 MB 的文件。
我搜索了很多网页,但没有一个解决方案有效。
我在php.ini中设置了临时目录:
upload_tmp_dir =/upload
我已经设置了/upload目录的权限,而apache是文件的所有者,所以这个目录肯定是PHP可写的。
我已将文件上传器中的目标路径设置为/upload,因为我希望上传后的文件也存储在此目录中。最终结果是小文件上传成功,但大于 4 MB 的文件上传失败——我想到这种行为的唯一原因是文件在上传过程中存储在/tmp。可以肯定的是,我已经用sys_get_temp_dir() 进行了检查,结果是/tmp-所以 PHP 会忽略我的 php.ini 指令,或者还有其他方法可以设置上传期间文件的存储位置。
哦,最后一个信息:open_basedir 没有设置,所以 PHP 对磁盘的访问只受文件权限的限制。
【问题讨论】:
-
你重启服务器了吗(抱歉这个愚蠢的问题)?
-
没有愚蠢的问题,只有愚蠢的答案:)。是的,我已经多次尝试解决问题并尝试不同的解决方案。
-
你检查过 php 没有安装为 cgi mod 吗? (来自doc:如果这里指定的目录不可写,PHP会回退到系统默认的临时目录)
-
你能检查一下
upload_tmp_dirinphpinfo()吗? -
好的,现在轮到我问愚蠢的问题了:我应该如何检查 php 是否安装为 cgi mod?
标签: php file-upload valums-file-uploader