问题:无论我在任何网站上找到什么方法,我都无法重命名我的文件。我总是收到此错误
警告:move_uploaded_file(CUSTOM / TestFile.txt):无法打开流:第7行的C:\ XAMPP \ htdocs \ CUSTOM \ upload.php中没有此类文件或目录
警告:move_uploaded_file():无法在第7行的C:\ XAMPP \ htdocs \ CUSTOM \ upload.php中将'C:\ XAMPP \ tmp \ php7AAB.tmp'移动到'CUSTOM / TestFile.txt'
如果我不尝试重命名上传的文件,则上传成功,但是,文件重命名为文件夹名称(在本例中为“CUSTOM”)
背景:
愿财富永远属于找到解决方案的人。
<?php
$fname = $_FILES['file']['name'];
$ftemp = $_FILES['file']['tmp_name'];
$location = "CUSTOM/";
move_uploaded_file($ftemp, $location.$fname);
?>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" ><br/>
<input type="submit" value="Upload File">
</form>
</body>
</html>
答案 0 :(得分:1)
这不是你的问题:
Warning: move_uploaded_file(): Unable to move 'C:\XAMPP\tmp\php7AAB.tmp'
但这是:
to 'CUSTOM/TestFile.txt'
因为:
in C:\XAMPP\htdocs\CUSTOM\upload.php on line 7
您实际上是在尝试将临时文件移至 CUSTOM/CUSTOM/TestFile.txt
。您应该提到的上传脚本已驻留在CUSTOM
中。因此,这是当前的工作目录。因此,尝试使用CUSTOM/
的另一个 相对 路径前缀写入文件将“加倍”所谓的目标目录名称。< / p>
顺便说一句,客户提供的name
可以是任何 - 甚至是index.php
或覆盖upload.php
,甚至可能是../../boot.ini
。不要只接受任何用户输入。至少在可行的情况下应用basename
白名单,使用与脚本所在位置不同的目标文件夹,并禁止每.htaccess
等执行CGI / PHP。