2013-06-05 26 views
19

sto usando laravel 4 e ho bisogno di cambiare l'immagine caricata, ce l'ho in:Come eliminare un file in laravel 4

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

Durante la modifica del nuovo Voglio fare una forma di immagine cambiamento , ma come posso cancellare e caricare un altro file. Sto usando:

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

Il problema è che non funziona, non è sostituire il file, quindi come potrei eliminare l'immagine in modo da poter caricare di nuovo.

In laravel 3 Ho usato solo:

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

Ma non vedo nulla di rimozione dei file in documenti laravel.

risposta

41

penso che si dovrebbe accodare public_path() ai nomi dei file, per ottenere il percorso del file vero e proprio, come questo

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

'File :: delete (public_path ($ id .'_ news.jpg ')) ; ' – DutGRIFF

8

Si può facilmente fare qualcosa di simile:

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

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

Riferimento: Laravel-recipes Delete a File

+2

Non è necessario controllare se il file esiste prima di eliminarlo. Si potrebbe tuttavia voler verificare che non esista dopo averlo eliminato poiché gli errori vengono ignorati silenziosamente. –

+0

Quindi potresti aggiungere un 'else' al codice qui sopra! Il che significa controllare se il file esiste sempre a portata di mano! –

-2

Funziona su 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'; // dal pubblico/

se (File :: esiste ($ DestinationPath)) {

File::delete($destinationPath); 

}

+0

$ destinationPath = 'uploads /'; dove il file è archiviato File :: exists() controlla il file presente o no se true viene semplicemente cancellato – Jsun