题 如何删除laravel 4中的文件


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

Public
--uploads
---news
----id_news.jpg

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

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

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

在laravel 3中我只使用了:

File::delete('path/to/file');

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


19
2018-06-05 23:56


起源




答案:


Laravel 4中仍然有删除方法:
SRC /照亮/文件系统/ Filesystem.php

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


13
2018-06-06 00:00





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

File::delete(public_path().$id.'_news.jpg');

41
2017-09-09 08:49



File::delete(public_path($id.'_news.jpg')); - DutGRIFF


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

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

if (File::exists($filename)) {
    File::delete($filename);
} 

参考: Laravel-recipes删除文件


8
2017-08-10 01:05



在删除文件之前,您不必检查文件是否存在。但是,您可能希望在删除错误后检查它是否不存在,因为错误会被忽略。 - Simon Bengtsson
然后你可以添加一个 else 到上面的代码!这意味着检查文件是否存在总是很方便! - Waiyl Karim


其他删除用法:

// Delete a single file
File::delete($filename);

// Delete multiple files
File::delete($file1, $file2, $file3);

// Delete an array of files
$files = array($file1, $file2);
File::delete($files);

资料来源:http://laravel-recipes.com/recipes/133/deleting-a-file


2
2018-01-19 11:37





$ =的DestinationPath '上传/我-image.jpeg'; //来自公众/

if(File :: exists($ destinationPath)){

File::delete($destinationPath);

}


0
2018-06-13 19:34



$ =的DestinationPath '上传/';文件所在的位置File :: exists()检查文件是否存在,如果为真,它只是被删除 - im-sunil


这适用于laravel 4.2。

File::delete(storage_path()."/ProductSalesReport-20150316.csv");

// Here are some other paths to directories laravel offers, Hope this
   helps

/* Path to the 'app' folder */
echo app_path();

/* Path to the project's root folder */
echo base_path();

/* Path to the 'public' folder */
echo public_path();

/* Path to the 'app/storage' folder */
echo storage_path();

-2
2018-03-16 05:56