我目前正在学习基本媒体文件上传表单的教程。我尝试将其添加到我的网站,但我总是收到消息"上传文件时出错,请重试! 当我尝试使用它上传图像时。
我已将以下 html 文件放到我的服务器上:
<DOCTYPE! html>
<html>
<head>
</head>
<body>
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>
然后我创建了文件上传器.php,如下所示:
<?php
// Where the file is going to be placed
$target_path = "../uploads/";
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
?>
我已将这些文件存储在同一个目录中。然后,我创建了另一个名为uploads的目录 - 这是可写的。
为什么这不起作用?
编辑:我现在能够上传最大1MB的文件,但任何大于此的文件都无法上传。正如您在 HTML 脚本中看到的,我已将最大文件大小设置为 10MB - 所以这应该可以工作。知道为什么不是吗?
它会
起作用。我检查了我的桌面。
将value="100000"
更改为value="1000000"
喜欢
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
和
$target_path = "uploads/";
MAX_FILE_SIZE隐藏字段(以字节为单位)必须在 文件输入字段,其值是接受的最大文件大小 由PHP。
有关更多信息,请单击文件上传 - php 手册
用户的要求(如,他在评论中问道)
在文件名后附加 time()
.有很多方法可以做到。但是,您可以使用这个。
$target_path = $target_path .time() .basename( $_FILES['uploadedfile']['name']);