【问题标题】:PHP move_upload_file failed to open stream: no such file or directoryPHP move_upload_file 无法打开流:没有这样的文件或目录
【发布时间】:2016-05-19 12:39:32
【问题描述】:

我目前正在使用 Jcrop 让用户裁剪图像,裁剪后他们可以上传图像,我想使用 php 裁剪图像并将文件移动到正确的目录。

这是我下面的教程:Tutorial

我有这个输入元素:

<input type="file" name="upload-image" id="upload-image"/>

然后,当使用 Jcrop 选择图像裁剪区域时,用户将上传表单。这是 PHP 不工作的部分:

 // new unique filename
 $sTempFileName = 'cache/' . md5(time().rand());

 // move uploaded file into cache folder
 move_uploaded_file($_FILES['upload-image']['tmp_name'], "upload/" . $sTempFileName);

然后,当我上传表单时,我收到这 2 个错误。

警告:move_uploaded_file(../upload/cache/6b769249a48996fd69d527b2412b684e):打开流失败:没有这样的文件或目录

警告:move_uploaded_file():无法将“C:\wamp1\tmp\phpB1A0.tmp”移动到“../upload/cache/6b769249a48996fd69d527b2412b684e”

我已经检查了很多 stackoverflow 页面,但都使用文件夹将图像上传到,但在本教程中它说它需要将文件上传到缓存文件夹中。这让我觉得我不需要指定要上传到的文件夹。

【问题讨论】:

标签: php file file-upload upload move


【解决方案1】:

确保目标目录 (../upload/cache/) 存在并且可由 Web 服务器写入。如果您不确定上传/缓存目录应该在哪里,您可以在调用 move_uploaded_file 之前临时添加此行来查找:

echo realpath($sTempFileName);

【讨论】:

  • 非常感谢,原来 $sTempFileName 是 /cache/randomgeneratedname。我才意识到。
猜你喜欢
  • 2015-11-13
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
相关资源
最近更新 更多