亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php多圖上傳重命名相同如何解決?

php多圖上傳重命名相同如何解決?

PHP
FFIVE 2019-03-17 17:48:25
<?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 的名字讀取文件,這樣下載時保存到用戶本地的文件名還是上傳時的文件名。

查看完整回答
反對 回復 2019-03-18
?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

一般上傳到服務器的文件名都是要經過hash處理的,類似md5(time().$filename.$salt)

查看完整回答
反對 回復 2019-03-18
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

圖片的原名是用來看的,不是用來做系統存儲的。所以相同這一點你就知道存放的時候,名字應該由你自己再起一個不重復的名字。

查看完整回答
反對 回復 2019-03-18
  • 4 回答
  • 0 關注
  • 875 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號