我正在使用Valums文件上传器通过带有进度条的网页上传文件.几乎一切正常,但我无法更改默认的tmp目录,在上传过程中存储文件.
文件应存储在/upload目录中,而不是存储在默认系统/tmp目录中,因为/tmp它安装在RAM磁盘中,其大小限制为4 MB,用户将上传大约10 MB的文件.
我搜索了很多网页,但没有一个解决方案有效.我已将temp目录设置为php.ini:
upload_tmp_dir =/upload
Run Code Online (Sandbox Code Playgroud)
我已经设置了/uploaddir的权限,而apache是该文件的所有者,因此该目录肯定是PHP可写的.
我已经在文件上传器中设置了目标路径/upload,因为我希望文件在上传后也存储在此目录中.最终结果是成功上传了小文件,但是大于4 MB的文件无法上传 - 我想到这种行为的唯一原因是文件/tmp在上传期间存储.可以肯定的是,我已经检查了它,sys_get_temp_dir()结果是/tmp-so PHP忽略了我的php.ini指令,或者还有其他一些方法来设置上传过程中存储文件的位置.
哦,最后的信息:open_basedir没有设置,所以PHP访问磁盘只受文件权限的限制.
我正在开发CakePHP 2项目.它最初从2.0.x开始,然后最近迁移到2.1.0.在整个开发过程中,我一直收到以下错误消息.
它不可预测地弹出页面顶部.它可能是我只是在查看不同的页面,甚至在我向数据库添加记录之后(但记录正确保存).
Warning:
SplFileInfo::openFile(/var/www/cake_prj/app/tmp/cache/persistent/cake_core_cake_console_):
failed to open stream:
Permission denied in
/var/www/cake_prj/lib/Cake/Cache/Engine/FileEngine.php on line 293
Run Code Online (Sandbox Code Playgroud)
我以递归方式将tmp文件夹的所有者和组设置为apache,并仍然收到该消息.另外,我然后递归地设置读取,写入和执行所有权限(chmod 777).错误消息仍然会弹出.
即使在更改了所有者,组和权限之后,相关文件仍然存在:
cake_prj/app/tmp/cache/persistent/cake_core_cake_console_
Run Code Online (Sandbox Code Playgroud)
将其所有者和组设置回root,并将其权限设置回默认值.
什么可能导致这个问题?有没有办法确保每次生成此文件时,它始终都是apache:具有读/写/执行权限的apache?
当我在服务器上运行脚本时,我们如何确定运行php脚本的用户?它是否偶然在与apache或phpmyadmin相同的用户下运行?我的问题可能是错误的框架,但我想知道哪个用户,以便我为/ var中的不同文件夹设置适当的权限
我的服务器上有一个Video文件夹,有755的权限.问题是:当有人去上传视频文件时,由于权限错误,无法上传到该文件夹.
如果我将权限更改为777,则可以上传视频.但出于安全原因,我不想允许777的文件夹权限.
在上传视频时,有没有办法在PHP中临时更改777的权限?