PHP: move_uploaded_file() 无法打开流: 没有这样的文件或目录

2022-08-30 19:01:12

我正在尝试让PHP将上传的文件从tmp目录移动到我的Web服务器上的永久位置。这似乎很简单,但我得到这个错误:

Unable to move 'C:\UniServer\tmp\php3F62.tmp' to 'static/images/slides/1/1.jpg'

很简单,对吧?它找不到目标文件夹。

我的问题是:如何引用所需的目标目录?

引用是否相对于脚本在服务器上的位置?还是相对于 URL?还是 ?还是操作系统的文件系统?还是别的什么?PHP DOCUMENT_ROOT

我无法在PHP文档中找到答案,实际上在SO.上的任何类似问题中也找不到答案。

任何人都可以帮忙吗?谢谢。


答案 1

跟踪路径的一种简单方法是在索引中定义绝对路径.php

define ('SITE_ROOT', realpath(dirname(__FILE__)));

然后像这样使用它:

move_uploaded_file($_FILES['file']['tmp_name'], SITE_ROOT.'/static/images/slides/1/1.jpg');

答案 2

我在上传时遇到了同样的问题。看看我的例子,也许它可以帮助你。

我创建的文件名为“上传”。

$uploads_dir = 'uploads/';
$name = $_FILES['userfile']['name'];
if (is_uploaded_file($_FILES['userfile']['tmp_name']))
{       
    //in case you want to move  the file in uploads directory
     move_uploaded_file($_FILES['userfile']['tmp_name'], $uploads_dir.$name);
     echo 'moved file to destination directory';
     exit;
}

推荐