【问题标题】:How to let users upload a file to server如何让用户上传文件到服务器
【发布时间】:2019-08-20 07:38:37
【问题描述】:

我有一个页面,我希望它允许用户将文件上传到我的服务器,以便我以后可以看到它。我已经开始了,但是当您单击提交时,它会将您带到 500 错误。这是我到目前为止的代码:

HTML:

<form action="uploadfile.php" enctype="multipart/form-data" method="POST">
Choose File: 
<input name="userfile" type="file">
<p></p>
<p class="section-content"><input type="submit" value="Upload File"></p>
</form>

PHP:(命名为uploadfile.php)

<?php 
    $path = "files/"; $path = $path . basename( $_FILES['userfile']['name']);

    if(move_uploaded_file($_FILES['userfile']['tmp_name'], $path)) { 
        echo "Success uploading". basename($_FILES['userfile']['name']); 
    } else{ 
        echo "Error when uploading file."; 
    } 
?>

在 HTML 中,有一个选择文件的按钮和一个提交的按钮。提交按钮将您带到uploadfile.php,并显示为500 - 内部服务器错误。请注意,它不会像出现错误时那样说“上传文件时出错”。 我是 PHP 新手,所以我不知道我是否做错了什么,或者也许有一种方法可以在 Javascript 中做到这一点,而我在这方面的经验稍微丰富一些?

提前谢谢你。

编辑:我尝试了 2 种不同的浏览器(Chrome 和 Edge)

【问题讨论】:

  • 您应该首先查看 Web 服务器的错误日志并查看错误消息是什么。
  • 我已经编辑了你的代码,你看到错别字了吗?
  • 你平时会不会像“$ path”这样声明php变量
  • 请添加error_reporting(E_ALL);和 ini_set("display_errors",1);查看确切的错误。
  • 我检查了你的代码,它似乎工作正常。只需删除 $ 和路径之间的空格。它应该是 $path。

标签: php html file-upload


【解决方案1】:

更正

使用 $_SERVER['DOCUMENT_ROOT'] 代替 basename()

$path = $_SERVER['DOCUMENT_ROOT'].'/your root file name/files';
       $name = $_FILES['userfile']['name'];
       $tmp_name = $_FILES['userfile']['tmp_name'];

       move_uploaded_file($tmp_name, $path.'/'.$name);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 2010-10-15
    • 2011-01-27
    相关资源
    最近更新 更多