這篇文章主要講解了“怎么解決php unlink失敗的情況”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么解決php unlink失敗的情況”吧!
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、漯河網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、成都商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為漯河等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。php unlink失敗的解決辦法:首先打開相應(yīng)的PHP示例文件;然后通過“unset($info);”解除圖片的進(jìn)程占用;最后重新執(zhí)行“@unlink”操作即可。
本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1、Dell G3電腦。
最近做我網(wǎng)站的更換頭像功能時,涉及到了PHP的文件上傳。
我采用的方案是用戶先上傳到服務(wù)器,服務(wù)器再上傳到阿里云的OSS,中間會有一個把圖片臨時存儲到服務(wù)器的過程。于是在使用php的@unlink(刪除指定文件)方法時發(fā)現(xiàn)了刪除失敗的問題。
開始以為是我的路徑名寫錯了,后來確認(rèn)這個參數(shù)沒有錯。刪除失敗的原因是圖片仍然被進(jìn)程占用,所以想要成功執(zhí)行@unlink操作,我們好手動釋放下文件對象,避免因為被其他線程或進(jìn)程占用而導(dǎo)致刪除失敗,代碼片段如下:
// [API接口-用戶更新頭像] public function setAvatar() { // 獲取表單上傳文件 $file = $this->request->file('avatar'); if ($file) { // 移動到框架應(yīng)用根目錄/public/uploads/ 目錄下 $info = $file->rule('date')->move(ROOT_PATH . 'public' . DS . 'uploads'); if ($info) {//文件上傳到服務(wù)器成功->接下來上傳到OSS $filePath = ROOT_PATH . 'public' . DS . 'uploads/' . $info->getSaveName(); $oss = new Oss(); $result = $oss->putObject($filePath); if ($result) { //上傳到OSS成功 unset($info);//解除圖片的進(jìn)程占用 @unlink($filePath); return success(['avatar' => $result['fileSrc']], '頭像更新成功'); } } } }
不得不說,自學(xué)是困難重重的,原因不在于外,在于內(nèi)。這一次為了追尋所想,斬斷了退路,辭掉了安穩(wěn)的工作,希望不要讓這些犧牲,毫無價值可言。
感謝各位的閱讀,以上就是“怎么解決php unlink失敗的情況”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么解決php unlink失敗的情況這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!