php多图上传重命名相同如何解决?

查看:133
本文介绍了php多图上传重命名相同如何解决?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<?php
header("content-type:text/html;charset=utf-8");
include 'inc.php';
include 'mysql.fun.php';
session_start();

$uName=$_POST["uName"];
$uSex=$_POST["uSex"];
$uIntroduction=$_POST["uIntroduction"];
$uImg1=$_FILES["uImg1"];
$uImg2=$_FILES["uImg2"];
$uImg3=$_FILES["uImg3"];
//照片1
print_r($uImg1);
$ext1=explode(".", $uImg1["name"]);
$extName1=end($ext1);
if($extName1!="jpg"&&$extName1!="gif"&&$extName1!="png"){
    echo "文件错误<a href='index.php'>返回</a><br/>";
    exit;
}
if($uImg1["size"]>5000000){
    echo "照片太大了<a href'index.php'>返回</a><br/>";
    exit;
}
$dir1="upload/";
@$fileName1=time().rand(10000.99999).".".$extName1;
@$times1=date("Y-m-d H:i:s", time()) ; 
$Url1=$dir1.$fileName1;
echo "照片1上传成功";
move_uploaded_file($uImg1["tmp_name"],$Url1);

//照片2
print_r($uImg2);
$ext2=explode(".", $uImg2["name"]);
$extName2=end($ext2);
if($extName2!="jpg"&&$extName2!="gif"&&$extName2!="png"){
    echo "文件错误<a href='index.php'>返回</a><br/>";
    exit;
}
if($uImg2["size"]>5000000){
    echo "照片太大了<a href'index.php'>返回</a><br/>";
    exit;
}
$dir2="upload/";
@$fileName2=md5(time().rand(10001.99998)).".".$extName2;
@$times2=date("Y-m-d H:i:s", time()) ; 
$Url2=$dir2.$fileName2;
echo "照片2上传成功";
move_uploaded_file($uImg2["tmp_name"],$Url2);

//照片3
print_r($uImg3);
$ext3=explode(".", $uImg3["name"]);
$extName3=end($ext3);
if($extName3!="jpg"&&$extName3!="gif"&&$extName3!="png"){
    echo "文件错误<a href='index.php'>返回</a><br/>";
    exit;
}
if($uImg3["size"]>5000000){
    echo "照片太大了<a href'index.php'>返回</a><br/>";
    exit;
}
$dir3="upload/";
@$fileName3=uniqid(time().rand(10002.99997)).".".$extName3;
@$times3=date("Y-m-d H:i:s", time()) ; 
$Url3=$dir3.$fileName3;
echo "照片3上传成功";
move_uploaded_file($uImg3["tmp_name"],$Url3);


$sql="insert into content(uname, usex, uintroduction, uimg1, uimg2, uimg3, times)";
$sql.="values('{$uName}', '{$uSex}', '{$uIntroduction}', '{$fileName1}', '{$fileName2}', '{$fileName3}', '{$times}')";
query($sql);
?>

关于多图片上传的一些疑问,求大神给些思路。
可以接收到上传图片的原文件名,上传后也可以区分图片的不同类型(如:JPG、PNG)等,可是图片的重命名却全是一样。
当图片格式都是同一类型的时候,图片就完全错误了。
最后突发奇想,为何用不同的加密方法加密一下。虽然目前可以正常的实现图片的区分,可还是感觉思路有些错误,希望大神给些建议。
PS:个人猜测,文件名重复是不是因为三个图片都被转换成了Array,重命名Array ( [name] )的时候,因为三个图片全都是Array ( [name] )所以被覆盖掉了?

解决方案

@$fileName1=time().rand(10000.99999).".".$extName1;

这其中的 rand(),里面的数是错的吧,那应该是 逗号(,),不应该是句号(.);

建议去掉那个@符号,不方便查错!

这篇关于php多图上传重命名相同如何解决?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆