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

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

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

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

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

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

這個方法位于thinkphp\library\think\File.php文件中,大概在348行開始。

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

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

我們在微信上24小時期待你的聲音

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

轉(zhuǎn)載請注明出處:thinkphp5存在多圖上傳卻返回同一張圖片的bug - 微構(gòu)網(wǎng)絡(luò)
分享:
標(biāo)簽:
文水县| 吉隆县| 吉林省| 集安市| 桃园县| 东乌| 汾阳市| 祁东县| 库尔勒市| 江孜县| 满城县| 商都县| 平顺县| 陈巴尔虎旗| 新密市| 宝丰县| 文安县| 长岭县| 桦南县| 宿州市| 康乐县| 吴堡县| 梓潼县| 陆丰市| 余庆县| 定远县| 博乐市| 东山县| 宁安市| 牟定县| 疏附县| 探索| 桓台县| 阳高县| 确山县| 界首市| 建阳市| 金寨县| 绵阳市| 凭祥市| 会泽县|