如何删除laravel 4中的文件

时间:2013-06-05 23:56:40

标签: laravel 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文档中的文件的任何内容。

6 个答案:

答案 0 :(得分:42)

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

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

答案 1 :(得分:13)

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

否则只使用好的旧unlink()!?

答案 2 :(得分:8)

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

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

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

参考:Laravel-recipes Delete a File

答案 3 :(得分:2)

其他删除用法:

// 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);

Source: http://laravel-recipes.com/recipes/133/deleting-a-file

答案 4 :(得分:0)

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

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

File::delete($destinationPath);

}

答案 5 :(得分:-2)

这适用于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();