php简单上传文件不起作用

时间:2014-02-01 05:53:32

标签: php upload

我目前正在开发一个非常简单的PHP文件上传,但它根本没有做任何事情。指定目录中没有任何内容。

PHP提交我的HTML表单:

<?php

if ($_FILES["file"]["error"] > 0)
{
    //error
    echo "Something went wrong";
}
else
{
    move_uploaded_file($_FILES["file"]["tmp_name"],
    "/uploads/" . $_FILES["file"]["name"]);
}

?>

我怀疑使用GoDaddy的事情可能会有些问题,因为他们过去一直对php功能很古怪。

编辑:修正了下划线; 现在我收到了一个实际错误。

Warning: move_uploaded_file(/uploads/asd.docx) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/content/09/11461509/html/php/upload.php on line 11

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpSIA5Jv' to '/uploads/asd.docx' in /home/content/09/11461509/html/php/upload.php on line 11

4 个答案:

答案 0 :(得分:2)

您从不同的文件夹"php"运行代码,而不是我通过错误消息收集的代码。尝试从服务器的根目录运行代码,然后使用uploads作为上传文件夹。

还要确保该文件夹具有正确的写入权限集。通常为755,有时为777,但755是更安全的设置。


根据OP的original posted code

$FILES

之间缺少下划线
move_uploaded_file($FILES["file"]["tmp_name"],
                 ---^

<?php

if ($_FILES["file"]["error"] > 0)
{
    //error
    echo "Something went wrong";
}
else
{
    move_uploaded_file($_FILES["file"]["tmp_name"],
    "/uploads/" . $_FILES["file"]["name"]);
}

?>

答案 1 :(得分:0)

请将表单标记中的enctype添加为multipart/form-data,PHP代码应如下所示 -

首先确保您的文件已在temp目录中成功上传,然后尝试调试上传路径,最后将文件移动到特定目录。

<?php

if ($_FILES["file"]["error"] > 0) {
    //error
    echo "Something went wrong";
} else {
// try echoing the following codes first-
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];

// then try to debug upload path
// move_uploaded_file($_FILES["file"]["tmp_name"],"/uploads/" . $_FILES["file"]["name"]);
// take move_uploaded_file(); in a variable and then print_r($variable);
}

?>

我指的是使用PHP阅读this post上传问题docx文件。

答案 2 :(得分:0)

试试这个

<html>
<body>
<form action="" method="post"enctype="multipart/form-data">
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
<?php
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
?>

答案 3 :(得分:-1)

请以表格标记enctype="multipart/form-data"

写下来