【问题标题】:File Upload Failing Mysteriously in CakePHPCakePHP 中的文件上传神秘失败
【发布时间】:2010-07-09 23:59:17
【问题描述】:

我正在尝试使用 CakePHP 文件上传表单帮助程序将文件上传到我的服务器。
我目前在我的开发计算机 (Mac OSX) 上运行 CakePHP 1.3。
当表单提交时,它在传递给控制器​​的变量中有它的临时名称:/var/tmp/name,然后它的名称作为文件的名称。
但是,当我尝试将文件重命名为更永久的位置时,它会失败,如果我转到该位置,它就不存在了。

我收到以下错误消息:

Warning (2): move_uploaded_file(Users/chustar/Documents/IMAG0001.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory [APP/controllers/users_controller.php, line 41]
Warning (2): move_uploaded_file() [function.move-uploaded-file]: Unable to move '/private/var/tmp/php98lzsP' to '/Users/chustar/Documents/IMAG0001.jpg' [APP/controllers/users_controller.php, line 41]
Warning (2): Cannot modify header information - headers already sent by (output started at /Library/WebServer/Documents/cake/libs/debugger.php:673) [CORE/cake/

【问题讨论】:

  • 你怎么知道它失败了?错误信息是什么?
  • 我会尝试解决第三个错误:“警告(2):无法修改标头信息 - 标头已发送(输出开始于 /Library/WebServer/Documents/cake/libs/debugger.php :673) [CORE/cake/" 这可能只是暂时禁用某些东西。基本上,您想简化事情,以便找出问题的原因。
  • 第三个错误通常是前两个错误的结果。显示的错误消息会创建阻止修改标头的输出。
  • @Rob Wilkerson 很公平,我认为这是日志文件中的错误,而不是浏览器中的错误。

标签: php cakephp file-upload directory tmp


【解决方案1】:

当我没有在目标目录上正确设置权限时,我经常收到此错误。出于说明的目的,我将假设您正在运行 Apache Web 服务器,并且它以名为 www 的用户身份运行。 www 用户必须对目标目录具有写入权限。这与拥有哪些权限无关,而是网络服务器用户拥有哪些权限。

如果您发现这不是问题,更多细节和/或一些代码可能会有所帮助。

【讨论】:

  • 出于某种原因正在写入“我的文档”文件夹。所以apache在那里没有写权限。解决了。​​
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多