我是php的新手并试图建立一个注册系统,每个用户都必须上传他或她的图像。我想使用名称作为用户ID保存图像,以便没有图像可以具有相同的名称,但我不知道如何操作。请帮忙..!!
以下是代码
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Choose a file to upload:
<input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
<?php $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)) {
header("Location: contactinfo.php");
} else{
echo "There was an error uploading the file, please try again!";
}
&GT;
答案 0 :(得分:0)
在你的
中target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
这将是包含新文件路径的名称,因此如果要重命名,只需键入
即可filename=$_FILES["file"]["name"];
$extension=end(explode(".", $filename));
$newfilename="file_". $userid .".".$extension;
答案 1 :(得分:0)
而不是这样做:
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
尝试这样做:
$target_path = $target_path . $userid . '.jpg';
$target_path
之后的数据确定文件名将是什么。
信任用户浏览器提供的扩展名(.gif,.jpg,.png)并不总是安全的。也不信任$_FILES["uploadedfile"]["type"]
。
如果您还允许用户上传SVG,GIF,PNG或其他图片类型,则可以根据文件的内容类型猜测正确的扩展名,该内容类型通过Fileinfo或GD确定。
答案 2 :(得分:0)
例如:
$ target_path = strtotime(日期(&#39; Y-m-d H:i:s&#39;));
move_uploaded_file($ _ FILES [&#39;上传文件&#39;] [&#39; tmp_name&#39;],$ target_path);
要使用唯一ID保存,您可以在新图片的名称中使用strtotime(日期(&#39; Y-m-d H:i:s&#39;))。
如果您有更多问题,可以加我http://www.newvibe.ca/ludovic.ledoux
答案 3 :(得分:0)
通常,如果您允许用户上传相同的文件名多次次而不覆盖旧文件,请使用uniqid();
$target_path = $target_path . uniqid($user_id) . basename( $_FILES['uploadedfile']['name']);