Home  >  Article  >  Backend Development  >  How to solve the problem of php unlink failure

How to solve the problem of php unlink failure

藏色散人
藏色散人Original
2021-03-08 11:16:203299browse

Solution to php unlink failure: 1. Open the corresponding PHP sample file; 2. Use "unset($info);" to unblock the process of the image; 3. Re-execute the "@unlink" operation. , syntax "@unlink($filePath);".

How to solve the problem of php unlink failure

#The operating environment of this article: Windows 7 system, PHP8, Dell G3 computer.

Recently when I was doing the avatar change function on my website, it involved PHP file upload.

The solution I adopt is that the user first uploads to the server, and then the server uploads it to Alibaba Cloud's OSS. In the middle, there will be a process of temporarily storing the image to the server. So I discovered the problem of deletion failure when using PHP's @unlink (delete specified file) method.

At first I thought my path name was written wrong, but later I confirmed that this parameter was correct. The reason for the deletion failure is that the picture is still occupied by the process, so if we want to successfully perform the @unlink operation, we'd better manually release the file object to avoid deletion failure due to being occupied by other threads or processes. The code snippet is as follows:

// [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']], '头像更新成功');
}
        }
}
}

It has to be said that self-study is very difficult, and the reason lies not in the outside world, but in the inside. This time, in order to pursue what I wanted, I cut off my retreat and quit my stable job. I hope these sacrifices will not be worthless.

[Recommended: "PHP Video Tutorial"]

The above is the detailed content of How to solve the problem of php unlink failure. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn