19

私は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 ドキュメントでファイルを削除することについては何もわかりません。

4

6 に答える 6

43

このように、実際のファイルパスを取得するには、ファイル名に public_path() を追加する必要があると思います

File::delete(public_path().$id.'_news.jpg');
于 2013-09-09T08:49:55.660 に答える
8

次のようなことが簡単にできます。

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

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

参考:Laravel-recipes ファイルの削除

于 2014-08-10T01:05:49.520 に答える
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);

ソース: http://laravel-recipes.com/recipes/133/deleting-a-file

于 2016-01-19T11:37:21.633 に答える
0
$destinationPath = 'uploads/my-image.jpeg'; // from public/

if ( File::exists($destinationPath) ) {
  File::delete($destinationPath);
}
于 2016-06-13T19:34:08.760 に答える
-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();
于 2015-03-16T05:56:13.013 に答える