2013-06-05 27 views
19

Tôi đang sử dụng laravel 4 và tôi cần phải thay đổi một hình ảnh được tải lên, tôi có nó trong:Làm thế nào để xóa một tập tin trong laravel 4

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

Khi chỉnh sửa của mới tôi muốn thực hiện một hình thức thay đổi hình ảnh , nhưng làm cách nào tôi có thể xóa và tải lên một tệp khác. Tôi đang sử dụng:

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

Vấn đề là nó không hoạt động, nó không thay thế tệp, vì vậy làm cách nào để xóa hình ảnh để tôi có thể tải lên lại.

Trong laravel 3 Tôi chỉ được sử dụng:

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

Nhưng tôi không thấy bất cứ điều gì về việc loại bỏ tập tin trong tài liệu laravel.

Trả lời

41

Tôi nghĩ bạn nên thêm public_path() để tìm tên tập tin, để có được đường dẫn tập tin thực, như thế này

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

'File :: xóa (public_path ($ id .'_ news.jpg')) ; ' – DutGRIFF

8

Bạn có thể dễ dàng làm điều gì đó như:

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

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

tham khảo: Laravel-recipes Delete a File

+2

Bạn không phải kiểm tra xem tệp có tồn tại hay không trước khi xóa. Tuy nhiên, bạn có thể muốn kiểm tra xem nó không tồn tại sau khi bạn xóa nó vì các lỗi được bỏ qua âm thầm. –

+0

Sau đó, bạn có thể thêm một 'else' vào mã ở trên! Điều đó có nghĩa là kiểm tra xem tệp có tồn tại luôn hữu ích không! –

-2

Điều này hoạt động trên 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(); 
0

$ destinationPath = 'uploads/my-image.jpeg'; // từ công chúng/

if (File :: tồn tại ($ destinationPath)) {

File::delete($destinationPath); 

}

+0

$ destinationPath = 'tải lên /'; nơi bạn tập tin được lưu trữ File :: exist() kiểm tra tập tin hiện tại hay không nếu đúng nó chỉ đơn giản là xóa – Jsun

Các vấn đề liên quan