使用简单的file upload脚本时出现PHP错误:未能打开stream:没有这样的文件或目录

我是一个PHP的n00b,但按照这个优秀的啧啧指示:

PHP的Tizagfile upload教程

不过,虽然这在运行默认的内置Apache的Mac(OSX 10.8)上完美运行,但它失败,不能在CentOS 6上运行。 通过Apache日志看我得到这个:

failed to open stream: No such file or directory 

/ var / www / html (位于/ Library / Webserver / Documents的Mac)根目录下的“uploads”文件夹中,权限设置为777

 [Tue Apr 30 13:05:11 2013] [error] [client (My IP Address)] PHP Warning: move_uploaded_file(uploads/Today notes.txt): failed to open stream: No such file or directory in /var/www/html/test/uploads3.php on line 8, referer: ht*p://serverip.myserver.com/test/form4.html [Tue Apr 30 13:05:11 2013] [error] [client (my IP address)] PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpc8AGo8' to 'uploads/Today notes.txt' in /var/www/html/test/uploads3.php on line 8, referer: ht*p://serverip.myserver.com/test/form4.html 

我是否缺lessPHP或Apache中的一些设置来使其正常工作?

提前谢谢了。

    根据你的问题, uploads文件夹是在/var/www/html ,但是它会尝试上传到/var/www/html/test/uploads

    要么你需要修复代码上传到正确的路径,或者你需要在测试目录中创建一个上传目录

    请参阅您的操作系统的文档。 CentOS 6有额外的安全配置,可能会阻止PHP访问tmp文件夹。

    允许该文件夹访问Apache HTTPD(或将临时上载路径更改为允许通过SELinux配置访问的Apache HTTPD文件夹)。 同时审核SELinux日志以找出准确地阻止访问目录的设置。

    例如,如果您没有将PHP作为Apache模块运行,则可能需要允许其他进程(例如PHP(F)CGI二进制文件)受保护的文件系统资源。

    希望这将解决您的问题

    首先检查文件夹是否存在,如果不是将其创建为波纹管

     if(!is_dir('uploads/Today')){ mkdir("uploads/Today", 0755); }