我正在尝试将自定义HTML表单中的文件上传到PHP脚本。这是我在HTML中的代码。
<form action="test.php" method="post" enctype="multipart/form-data">
<input id="txt" class="button" type = "text" value = "Choose File" onclick ="javascript:document.getElementById('file').click();">
<input id = "file" type="file" style='visibility: hidden;' name="img" onchange="ChangeText(this, 'txt');"/>
<input type="submit">
</form>
这是test.php文件:
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
$target = "i/";
if (move_uploaded_file($_FILES['img']['tmp_name'], $target)) {
echo "The file " . basename($_FILES['img']['name']) . "has been uploaded";
}
这是页面上的错误:
警告:move_uploaded_file():copy()函数的第二个参数不能是第7行/var/www/BLOCKED/test.php中的目录
警告:move_uploaded_file():无法在第7行的/var/www/BLOCKED/test.php中将'/ tmp / phpNxxB72'移动到'i /'。 是的,它的目录权限是777。
答案 0 :(得分:0)
move_uploaded_file的第二个参数应该是文件名(带路径)而不是目录
$target = "i/".basename($_FILES['img']['name']);
答案 1 :(得分:0)
错误是正确的。 move_uploaded_file()
的第二个参数不是目录,它应该是一个文件。您只需在第二个参数中将文件的名称附加到$target
即可。例如:
if (move_uploaded_file($_FILES['img']['tmp_name'], $target.$_FILES['img']['name'])) {
echo "The file " . basename($_FILES['img']['name']) . "has been uploaded";
}
答案 2 :(得分:0)
move_uploaded_file函数应该是这样的:
move_uploaded_file($_FILES['img']['tmp_name'], $target. $_FILES["img"]["name"])
在结尾添加文件名,因为$ target只是目录/文件夹。
答案 3 :(得分:0)
答案 4 :(得分:0)
$target = "i/".basename($_FILES['img']['name']);
你可能错过了这个。