在上传文件到服务器的PHP错误

时间:2014-10-13 12:51:08

标签: php audio

我正在使用此脚本将文件上传到服务器。

<?php
$name = $_FILES["file"]['name'];
echo $tmp_name = $_FILES['file']['tmp_name'];


if (isset($name))
 {
   if (!empty($name))
    {
     $location = 'uploads/';
     if (move_uploaded_file($tmp_name, $location.$name))
      {
       echo 'Uploadded';
      }
     else
      {
       echo "there was an error";
      }
     }
   else
  {
   echo 'please choose a file.';
  }
 }


?>
<form action="#" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br><br>
<input type="submit" value="submit">
</form>

此脚本在本地主机(我自己的电脑)上运行良好。但是当我将此代码上传到在线时,此代码会出现以下错误。

500内部服务器错误 您正在查找的资源存在问题,无法显示。

其次我还想回应类似流派,艺术家等的元标记。谢谢。

1 个答案:

答案 0 :(得分:1)

我认为PHP脚本发生错误,但服务器正在抛出HTTP 500代码而不是显示该错误。尝试在脚本的开头添加error_reporting(E_ALL); ini_set('display_errors', 'On');

我猜可能错误是undefined index相关的。

这是因为您的PHP脚本始终假定$_FILES始终存在,而不仅仅是在提交表单时期望它。

尝试像这样更新脚本:

<?php

// turn on error reporting
error_reporting(E_ALL);
ini_set('display_errors', 'On'); 

// proceed if there is a form post
if (count($_FILES))
{
    $name = $_FILES["file"]['name'];
    echo $tmp_name = $_FILES['file']['tmp_name'];

    if (isset($name)) {
        if (!empty($name)) {
            $location = 'uploads/';
            if (move_uploaded_file($tmp_name, $location . $name)) {
                echo 'Uploadded';
            } else {
                echo "there was an error";
            }
        } else {
            echo 'please choose a file.';
        }
    }
}


?>