我是HTML和PHP的新手。我使用https://gist.github.com/taterbase/2688850中的html / php代码在我的Web服务器上实现文件上传页面。创建"上传/"服务器中的文件夹,并授予chmod 777权限。
当我使用name =" uploaded_file",原来,我可以在文件夹中看到该文件。但是,当我更改名称=" xxx"对于别的东西,比如另一个名字或它的数组形式,屏幕上没有消息,在uploads文件夹中看不到文件。
是" 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 =&#34; user_file&#34;)不能工作
<!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!";
}
}
?>
答案 0 :(得分:1)
此行有问题move_user_file($_FILES['user_file']['tmp_name'], $path)
。
php的bool move_uploaded_file ( string $filename , string $destination )
将上传的文件移动到所需的位置。 它是php API中的内置函数 。
您的代码应更改为
move_uploaded_file($_FILES['user_file']['tmp_name'], $path)
为了让它发挥作用。
我认为你的误解来自你的命名。以前,您的字段名称为uploaded_file
,函数名称为move_uploaded_file()
。因此,您必须认为,当您的字段名称为user_file
时,您应该在php中调用move_user_file()
。那是一种创造性思维......:D
“uploaded_file”是修复或硬编码的值吗? 嗯,您需要阅读给定的链接。
答案 1 :(得分:1)
您正在将核心函数调用更改为未定义函数或用户定义函数。
如果你已经定义了一个函数move_user_file()
,那就确定了。
但是,如果您期望核心PHP内置函数,则没有函数move_user_file()
。
这条线似乎有问题:
if(move_user_file($_FILES['user_file']['tmp_name'], $path)) {
应该是:
if(move_uploaded_file($_FILES['user_file']['tmp_name'], $path)) {
您最终会调用未定义的函数move_user_file()
。
所需的功能是:move_uploaded_file()
答案 2 :(得分:1)
它不是move_user_file,它的move_uploaded_file。下次,学习如何正确使用编辑器的查找和替换; o)