2016-04-23 77 views
0

我目前正在关注基本媒体文件上传表单的教程。我尝试将其添加到我的网站,但我总是收到消息“上传文件时出现错误,请重试!”当我尝试使用它上传图片时。如何让我的网站用户上传媒体文件?

我已经把下面的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> 

我已经那么创建的文件uploader.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 - 所以这应该起作用。任何想法为什么不是?

+0

**上传**文件夹位于写入此代码的同一文件夹中或位于此文件夹之外? –

+0

是的,它在同一个文件夹中。 –

+0

然后,给'$ target_path =“uploads /”;'而不是这个'$ target_path =“../ uploads /”;' –

回答

2

它会工作。我检查了我的桌面。

变化value="100000"value="1000000"

喜欢

<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 

而且,

$target_path = "uploads/"; 

MAX_FILE_SIZE隐藏字段(以字节为单位测量的)必须先 文件输入字段,和它的值是PHP接受的最大文件大小 。

欲了解更多信息,请点击File Upload - php manual

用户需求(如,他问在评论)

time()附加您的文件名。有很多方法可以做。但是,这个你可以使用。

$target_path = $target_path .time() .basename($_FILES['uploadedfile']['name']); 
+1

感谢您的帮助。我现在可以通过网站上传文件。似乎唯一出现的其他问题是,它始终上载具有相同名称的文件,并覆盖原始文件。例如,我上传了一张图片,并上传了名为'image.jpeg'的图片。然后我上传了一张不同的图片,并且上传了名为'image.jpeg'的图片 - 覆盖了之前的图片。我怎样才能阻止这种情况发生? –

+0

检查我的答案。我编辑@ user2910074 –

+0

而且,正如我看到您的SO配置文件。你问总共13个问题,你只选择了2个答案(包括这个,*幸运*)。所以,它来自双方。您应该点击相应的答案来奖励他们。他们通过帮助你所有的问题给你的时间,这是一个棘手的问题。 *希望你能理解..!!干杯.. * @ user2910074 –

相关问题