我正在使用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文档中的文件的任何内容。
答案 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);
}
答案 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();