我使用的是基於Laravel的OctoberCMS。如何使用表單刪除文件?
我試圖刪除一個文件。我在文本框中輸入文件名,然後按提交。
零件形狀
<form method="POST" action="{{ url('/purge') }}">
<input type="hidden" name="_handler" value="onPurge" />
{{ form_token() }}
{{ form_sessionKey() }}
<input type="text" name="filename" />
<input type="submit" name="submit" value="Purge" />
</form>
組件PHP
public function onPurge(){
$name = $_POST['filename'];
if (!empty($_POST['submit'])) {
$file->delete(storage_path("app/media/$name"));
}
}
錯誤
Non-static method Illuminate\Database\Eloquent\Model::delete() should not be called statically
我試圖
public function onPurge(){
$name = $_POST['filename'];
if (!empty($_POST['submit'])) {
$file = new Video();
$file->delete(storage_path("app/media/$name"));
}
}
(也有完整的路徑在/ var/WWW/mysite的/公/)
功能完成,沒有錯誤,但文件不會刪除。
作爲一個調試問題,我建議你首先檢查你是否正在獲取文件,如果存在與File :: exists()存在,如果存在,你可以直接使用你自己的代碼。附:改變你的路徑到絕對$ path = public_path()。「/ storage/app/media /」類似的東西或檢查文件的路徑。 – rahulsm
@rahul_m我調整了我的代碼路徑。文件不會刪除,但我得到的返回true:if(File :: exists(storage_path(「app/media/$ name」))){echo「File Exists」; } –
good pass File :: delete(storage_path(「app/media/$ name」)));並嘗試一次 – rahulsm