私はLaravelに基づいてOctoberCMSを使用しています。フォームを使用してファイルを削除する方法は?
ファイルを削除しようとしています。テキストボックスにファイル名を入力してsubmitを押します。
コンポーネントフォーム
<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
私は
012を試してみました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()が存在する場合には、自分のコードをそのまま使用できるかどうかを確認することをお勧めします。 P.S.パスを絶対$ path = public_path()。 "/ storage/app/media /"に変更するか、ファイルのパスをチェックしてください。 – rahulsm
@rahul_mコードパスを調整しました。ファイルは削除されませんが、私はtrueを返します。if(File :: exists(storage_path( "app/media/$ name"))){echo "File Exists"; } –
良いパスFile :: delete(storage_path( "app/media/$ name")));一度試して – rahulsm