<?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] )所以被覆盖掉了?
4 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
上传的文件保存到服务器上时不要使用文件的原名字进行保存,例如可以使用 uuid 来作为文件名保存,然后在数据库里对此文件记录文件保存到系统的名字为 uuid 的,同时记录文件的原名字,下载的时候 header 里返回文件原名字,但是用 uuid 的名字读取文件,这样下载时保存到用户本地的文件名还是上传时的文件名。
- 4 回答
- 0 关注
- 859 浏览
添加回答
举报
0/150
提交
取消