我有这个PHP代码,可以将iPhone上的照片上传到此目录中。我遇到的问题是,每次上传照片时都会覆盖上一张照片。如何获取所有图像?
<?php
$name = "image";
$path = "uploaded/".$name.".jpg";
$output = "{\"response\":\"false\"}";
if(move_uploaded_file($_FILES['image']['tmp_name'], $path)) {
$output = "{\"response\":\"true\"}";
}
echo $output;
?>
答案 0 :(得分:1)
每次上传文件时,都会将其移动到同名目录。
你可以做很多事情,这是最简单的事情。
// produces something like image-1415317895-545c0987ce42c5
$name = "image-" . uniqid(time() . "-");
您还应该考虑验证上传的文件确实是图像。
$info = getimagesize($_FILES['image']['tmp_name']);
if (is_array($info) && array_key_exists('mime', $info) && $info['mime'] === 'image/jpeg') {
move_uploaded_file($_FILES['image']['tmp_name'], $path);
}
资源:
答案 1 :(得分:-1)
他们被重写,因为他们的名字相同。
为了解决这个问题,我们必须让每个名字都独一无二,我认为最好的方法就是这样:
$name = "image_" . sha1 (openssl_random_pseudo_bytes (100));
这样您就可以确定名称是唯一的。
如果没有安装OpenSSL,那么mt_random ()
是一个很好的选择。
$name = "image_" . sha1 (mt_random (0, 1000000));