Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem des PHP-Unlink-Fehlers

So lösen Sie das Problem des PHP-Unlink-Fehlers

藏色散人
藏色散人Original
2021-03-08 11:16:203153Durchsuche

Lösung für PHP-Unlink-Fehler: 1. Öffnen Sie die entsprechende PHP-Beispieldatei. 2. Entsperren Sie die Prozessbelegung des Bildes durch „unset($info);“ 3. Führen Sie die Operation „@unlink“ erneut aus ist „@ unlink($filePath);“.

So lösen Sie das Problem des PHP-Unlink-Fehlers

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP8, Dell G3-Computer.

Als ich kürzlich die Avatar-Änderungsfunktion auf meiner Website ausführte, war das Hochladen einer PHP-Datei erforderlich.

Die Lösung, die ich gewählt habe, besteht darin, dass der Benutzer es zuerst auf den Server hochlädt und der Server es dann auf das OSS von Alibaba Cloud hochlädt. In der Mitte wird das Bild vorübergehend auf dem Server gespeichert. Daher habe ich das Problem eines Löschfehlers entdeckt, wenn ich die @unlink-Methode (angegebene Datei löschen) von PHP verwende.

Zuerst dachte ich, dass mein Pfadname falsch geschrieben war, aber später bestätigte ich, dass dieser Parameter korrekt war. Der Grund für den Löschfehler liegt darin, dass das Bild immer noch vom Prozess belegt ist. Wenn wir also den @unlink-Vorgang erfolgreich ausführen möchten, sollten wir das Dateiobjekt besser manuell freigeben, um einen Löschfehler aufgrund der Belegung durch andere Threads zu vermeiden Der Codeausschnitt lautet wie folgt:

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

Nicht erlaubt. Selbstverständlich ist das Selbststudium sehr schwierig. Der Grund dafür ist nicht extern, sondern intern. Um das zu verfolgen, was ich wollte, habe ich dieses Mal meinen Rückzug abgebrochen und meinen festen Job aufgegeben. Ich hoffe, dass diese Opfer nicht wertlos sind.

【Empfohlen: „PHP-Video-Tutorial“】

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des PHP-Unlink-Fehlers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn