溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決php unlink失敗的情況

發布時間:2021-03-08 14:00:11 來源:億速云 閱讀:565 作者:TREX 欄目:編程語言

這篇文章主要講解了“怎么解決php unlink失敗的情況”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么解決php unlink失敗的情況”吧!

php unlink失敗的解決辦法:首先打開相應的PHP示例文件;然后通過“unset($info);”解除圖片的進程占用;最后重新執行“@unlink”操作即可。

怎么解決php unlink失敗的情況

本文操作環境:Windows7系統、PHP7.1、Dell G3電腦。

最近做我網站的更換頭像功能時,涉及到了PHP的文件上傳。

我采用的方案是用戶先上傳到服務器,服務器再上傳到阿里云的OSS,中間會有一個把圖片臨時存儲到服務器的過程。于是在使用php的@unlink(刪除指定文件)方法時發現了刪除失敗的問題。

開始以為是我的路徑名寫錯了,后來確認這個參數沒有錯。刪除失敗的原因是圖片仍然被進程占用,所以想要成功執行@unlink操作,我們最好手動釋放下文件對象,避免因為被其他線程或進程占用而導致刪除失敗,代碼片段如下:

// [API接口-用戶更新頭像]
public function setAvatar()
{
// 獲取表單上傳文件
$file = $this->request->file('avatar');
if ($file) {
// 移動到框架應用根目錄/public/uploads/ 目錄下
$info = $file->rule('date')->move(ROOT_PATH . 'public' . DS . 'uploads');
if ($info) {//文件上傳到服務器成功->接下來上傳到OSS
        $filePath = ROOT_PATH . 'public' . DS . 'uploads/' . $info->getSaveName();
       
        $oss = new Oss();
        $result = $oss->putObject($filePath); 
                  
if ($result) { //上傳到OSS成功                              
unset($info);//解除圖片的進程占用
@unlink($filePath);
return success(['avatar' => $result['fileSrc']], '頭像更新成功');
}
        }
}
}

不得不說,自學是困難重重的,原因不在于外,在于內。這一次為了追尋所想,斬斷了退路,辭掉了安穩的工作,希望不要讓這些犧牲,毫無價值可言。

感謝各位的閱讀,以上就是“怎么解決php unlink失敗的情況”的內容了,經過本文的學習后,相信大家對怎么解決php unlink失敗的情況這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女