2024国产成人精品免费视频|日本免费一区二区三区毛片|久久97超碰色中文字幕|亚洲天堂a中文字幕

thinkphp5存在多圖上傳卻返回同一張圖片的bug

2017-06-02 09:50 欄目:技術(shù)開(kāi)發(fā) 查看(14015)

thinkPHP是為了簡(jiǎn)化企業(yè)級(jí)應(yīng)用開(kāi)發(fā)和敏捷WEB應(yīng)用開(kāi)發(fā)的php國(guó)產(chǎn)開(kāi)發(fā)框架,在國(guó)內(nèi)使用的用戶(hù)還算比較多,特別適合中小型項(xiàng)目的敏捷開(kāi)發(fā)。而且這個(gè)框架除了核心功能外,還擴(kuò)展了很多日??赡苄枰褂玫降膒hp類(lèi)庫(kù),比如驗(yàn)證碼、圖片處理等等。

在最近使用tp5開(kāi)發(fā)一個(gè)項(xiàng)目過(guò)程中就遇到了一個(gè)tp5的坑,那就是多圖上傳(其實(shí)就是多文件上傳),利用官方提供的file類(lèi),發(fā)現(xiàn)很多時(shí)候出現(xiàn)上傳多張圖片返回的結(jié)果卻是一樣的。比如說(shuō)1、2、3三種圖片,我們應(yīng)該要得到的是a、b、c三個(gè)不同的圖片路徑,但是事實(shí)卻是經(jīng)常出現(xiàn)返回a、a、a的結(jié)果,也就是返回的結(jié)果重復(fù)了。

結(jié)果我們通過(guò)分析tp自帶的file類(lèi)發(fā)現(xiàn)原來(lái)是這個(gè)類(lèi)的buildSaveName(獲取保存文件名)方法的問(wèn)題,在這個(gè)方法中有date(‘Ymd’) . DS . md5(microtime(true),也就是同一批文件命名是以微秒來(lái)標(biāo)識(shí)的,雖然微秒已經(jīng)算很小的單位了,但事實(shí)證明重復(fù)的概率不低。

這個(gè)方法位于thinkphp\library\think\File.php文件中,大概在348行開(kāi)始。

因此要解決這個(gè)問(wèn)題,得把這個(gè)粒度再細(xì)化,比如最簡(jiǎn)單的就是在后面再加一個(gè)隨機(jī)數(shù),這樣就可以避免多個(gè)文件重名了。

與我們的項(xiàng)目經(jīng)理聯(lián)系
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流

轉(zhuǎn)載請(qǐng)注明出處:thinkphp5存在多圖上傳卻返回同一張圖片的bug - 微構(gòu)網(wǎng)絡(luò)
分享:
標(biāo)簽:
遂昌县| 延川县| 土默特右旗| 呼伦贝尔市| 宜城市| 兖州市| 海晏县| 友谊县| 崇州市| 泰和县| 榆中县| 龙门县| 长治县| 大埔县| 屯留县| 上高县| 益阳市| 瓮安县| 贵定县| 齐河县| 临武县| 吉安市| 屏南县| 庆安县| 保康县| 平武县| 绥江县| 昌图县| 天门市| 大宁县| 彭山县| 平和县| 宿松县| 仪征市| 宜都市| 天祝| 阜南县| 手游| 乡宁县| 青海省| 启东市|