从自定义表单HTML上载文件

时间:2014-08-01 14:05:17

标签: php html upload

我正在尝试将自定义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。

5 个答案:

答案 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)

Tantibus,你可以在这里阅读:

http://php.net/manual/en/function.move-uploaded-file.php

您必须为目标文件指定文件名。

答案 4 :(得分:0)

$target = "i/".basename($_FILES['img']['name']);
你可能错过了这个。