【问题标题】:Cakephp uploading an image, the tmp_name file is getting deleted before the script is done?Cakephp上传图像,在脚本完成之前tmp_name文件被删除?
【发布时间】:2010-11-30 09:43:11
【问题描述】:

我有一个 html 表单,允许用户浏览要上传的文件。

在 cakephp 脚本中,我使用 move_uploaded_file() 将文件从临时位置上传到服务器上的某个位置。

move_uploaded_file($file['tmp_name'], $url);

但是,文件似乎在上传完成之前就消失了:

move_uploaded_file(/img/recipes/5.jpg) [function.move-uploaded-file]:无法打开流:没有这样的文件或目录 [APP\app_controller.php,第 97 行]

move_uploaded_file() [function.move-uploaded-file]:无法将 'C:\Windows\Temp\phpF25A.tmp' 移动到 '/img/recipes/5.jpg' [APP\app_controller.php,行97]

【问题讨论】:

    标签: php html cakephp upload


    【解决方案1】:

    我认为它告诉你目标不存在。 /img/recipes/5.jpg 在 UNIX 系统上很难上传到有效目录,在 Windows 上可能完全无效。

    您需要建立一个绝对路径来保存文件(例如C:\webroot\project\images\foo.jpg)而不是 URL。

    【讨论】:

    • 服务器是ubuntu服务器版,至于目标路径,我认为cakephp的url重定向功能会自动将其转换为正确的url,猜猜不是。我会调查的。哦等等,我才意识到我在路径前面放了一个斜杠>
    • @Razor move_uploaded_file 函数与 Cake 或其路由器无关。此外,URL 与文件系统路径无关。抱歉,您必须自己构建一条有效路径,Cake 中并没有那么那么神奇。 :) 你可以使用一些Cake's constants 来获取与应用程序相关的目录。
    【解决方案2】:

    它抱怨不存在/img/recipes/5.jpg,而不是源文件(由用户上传)。

    【讨论】:

      猜你喜欢
      • 2014-10-02
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多