<?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);
?>
關于多圖片上傳的一些疑問,求大神給些思路??梢越邮盏缴蟼鲌D片的原文件名,上傳后也可以區分圖片的不同類型(如:JPG、PNG)等,可是圖片的重命名卻全是一樣。當圖片格式都是同一類型的時候,圖片就完全錯誤了。最后突發奇想,為何用不同的加密方法加密一下。雖然目前可以正常的實現圖片的區分,可還是感覺思路有些錯誤,希望大神給些建議。PS:個人猜測,文件名重復是不是因為三個圖片都被轉換成了Array,重命名Array ( [name] )的時候,因為三個圖片全都是Array ( [name] )所以被覆蓋掉了?
4 回答

慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
上傳的文件保存到服務器上時不要使用文件的原名字進行保存,例如可以使用 uuid 來作為文件名保存,然后在數據庫里對此文件記錄文件保存到系統的名字為 uuid 的,同時記錄文件的原名字,下載的時候 header 里返回文件原名字,但是用 uuid 的名字讀取文件,這樣下載時保存到用戶本地的文件名還是上傳時的文件名。
- 4 回答
- 0 關注
- 875 瀏覽
添加回答
舉報
0/150
提交
取消