我正在使用此脚本将文件上传到服务器。
<?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内部服务器错误 您正在查找的资源存在问题,无法显示。
其次我还想回应类似流派,艺术家等的元标记。谢谢。
答案 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.';
}
}
}
?>