【问题标题】:PHP File Upload HelpPHP 文件上传帮助
【发布时间】:2011-11-14 14:09:49
【问题描述】:
<html><head><title>File Upload</title></head>
<body bgcolor = "lavender"><div align = "center">
<?php
if (isset($_FILES['file']) && move_uploaded_file(
$_FILES['file']['name']))
{
echo "<font color = 'green'>The file has been uploaded.</font>";
}
else echo "<font color = 'red'>There was an error uploading the file.</font>";
?>
</div></body>
</html>

这是我的代码。 我正在尝试使用“get”方法通过单独网页中的单独表单上传文件。 如图所示的表单代码在这里:

<form enctype="multipart/form-data" action = "fileupload.php" method = "get">
<input type = "file" name = "file"><br>
<input type = "submit" value = "Upload">
</form>

出于某种原因,我不断收到错误消息 - 尽管我很确定我做对了。这是我第一次这样做,不胜感激。

【问题讨论】:

    标签: php html forms file upload


    【解决方案1】:

    您不能通过 $_GET 发送文件。您应该使用 POST 作为表单的方法。

    【讨论】:

      【解决方案2】:

      应该是 tmp_name

      if (isset($_FILES['file']) && move_uploaded_file($_FILES['file']['tmp_name'],'ftp/' . $_FILES['file']['name']))
      

      并且不要将其作为 GET 发送

      <form enctype="multipart/form-data" action = "fileupload.php" method = "post">
      

      (更改获取帖子)

      【讨论】:

      • 我还建议使用您的 PHP 验证文件,检查文件类型、大小等
      【解决方案3】:

      move_uploaded_file() 需要 $destination 参数作为它的第二个参数。这应该设置为您要保存文件的路径。

      【讨论】:

        【解决方案4】:

        我猜你需要在move-uploaded-file 函数中提供一个目的地作为参数。如果无法完成到目的地的移动(在这种情况下不存在),它将返回 false,这就是它会转到 else{} 条件的原因。

        【讨论】:

        • 由于某种原因,我的代码被截断了。应该是 if (isset($_FILES['file']) && move_uploaded_file($_FILES['file']['tmp_name'],'ftp/' . $_FILES['file']['name']))
        • 在这种情况下,请检查该文件夹的权限以及文件是否实际被移动到那里。
        • 权限必须是什么?不,它没有被移动。
        • 确保该目录存在(这将是第一步,并且您对该目录具有写入权限 - chmod 755 就足够了)。另外,请参阅关于 method="get" 的其他回复,它应该是“post”。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-19
        • 2011-06-29
        • 1970-01-01
        • 1970-01-01
        • 2011-10-21
        • 2010-11-02
        相关资源
        最近更新 更多