如何删除laravel 4中的文件

Cha*_*rre 19 laravel laravel-4

我正在使用laravel 4,我需要更改上传的图像,我有:

Public
--uploads
---news
----id_news.jpg
Run Code Online (Sandbox Code Playgroud)

在编辑新的时我想制作一个更改图像表单,但我怎样才能删除并上传另一个文件.我在用:

Input::file('img')->move('uploads/news', $id.'_news.jpg');
Run Code Online (Sandbox Code Playgroud)

问题是它不起作用,它不替换文件,所以如何删除图像,以便我可以再次上传.

在laravel 3中我只使用了:

File::delete('path/to/file');
Run Code Online (Sandbox Code Playgroud)

但我没有看到有关删除laravel文档中的文件的任何信息.

小智 43

我认为你应该将public_path()附加到文件名,以获得真实的文件路径,就像这样

File::delete(public_path().$id.'_news.jpg');
Run Code Online (Sandbox Code Playgroud)

  • `文件::删除(public_path($ ID .'_ news.jpg'));` (2认同)

DaG*_*ner 13

Laravel 4中仍然有删除方法:
src/Illuminate/Filesystem/Filesystem.php

否则只是用好旧的unlink()!


Wai*_*rim 8

您可以轻松地执行以下操作:

$filename = public_path().'/uploads/foo.bar';

if (File::exists($filename)) {
    File::delete($filename);
} 
Run Code Online (Sandbox Code Playgroud)

参考:Laravel-recipes删除文件

  • 在删除文件之前,您不必检查文件是否存在.但是,您可能希望在删除它后检查它是否不存在,因为会忽略错误. (2认同)