【发布时间】:2018-05-09 12:58:12
【问题描述】:
我是 HTML 和 PHP 新手。我使用来自https://gist.github.com/taterbase/2688850 的html/php 代码在我的网络服务器上实现文件上传页面。在服务器中创建“uploads/”文件夹并授予 chmod 777 权限。
当我使用 name="uploaded_file" 时它工作正常,我可以在文件夹中看到文件。但是,当我将 name="xxx" 更改为其他名称(例如另一个名称或其数组形式)时,它会失败,屏幕上没有消息,上传文件夹中看不到文件。
“uploaded_file”是一种修复还是硬编码的值?我的目标是稍后使用一个数组来代替多个文件上传,但是这个名称更改限制不允许我这样做。
请参阅下面的工作和不工作示例:
upload.php (name="uploaded_file") 有效
<!DOCTYPE html>
<html>
<head>
<title>Upload your files</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<p>Upload your file</p>
<input type="file" name="uploaded_file"></input><br />
<input type="submit" value="Upload"></input>
</form>
</body>
</html>
<?PHP
if(!empty($_FILES['uploaded_file']))
{
$path = "uploads/";
$path = $path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $path)) {
echo "The file ". basename( $_FILES['uploaded_file']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
}
?>
upload.php (name="user_file") 不起作用
<!DOCTYPE html>
<html>
<head>
<title>Upload your files</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<p>Upload your file</p>
<input type="file" name="user_file"></input><br />
<input type="submit" value="Upload"></input>
</form>
</body>
</html>
<?PHP
if(!empty($_FILES['user_file']))
{
$path = "uploads/";
$path = $path . basename( $_FILES['user_file']['name']);
if(move_user_file($_FILES['user_file']['tmp_name'], $path)) {
echo "The file ". basename( $_FILES['user_file']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
}
?>
【问题讨论】:
-
您是否碰巧在
s/uploaded_file/user_file上进行了全局搜索/替换? -
哦,是的,我做到了,这也改变了内置函数的名称,对吧? :) 谢谢指点
标签: php html file-upload