2010-06-30 14 views
10

Czy ktoś może zaproponować mi najlepszy sposób napisania kodu do przesłania pliku w CakePHP?Najlepsza praktyka przesyłania plików w CakePHP

  • Muszę przesłać plik i zapisać jego nazwę w tabeli.
  • Jeśli zapisywanie nie powiedzie się, nie należy przesyłać pliku.
  • Jeśli przesyłanie nie powiedzie się, rekord powinien zostać wycofany.
  • Kod powinien być wielokrotnego użytku
  • muszę przesłać plik w afterSave zwrotnego
+2

FYI, kiedy przetwarzasz w PHP, przesyłanie pliku już zostało zakończone, plik znajduje się w katalogu tymczasowym. Trzeba tylko ustawić ten plik w ostatecznej lokalizacji i wstawić odpowiedni wiersz do bazy danych. (I obsłużyć ewentualne awarie.) – sibidiba

Odpowiedz

16

Edit (2015): Proszę zobaczyć listę Awesome CakePHP dla obecnych wtyczek plików (2.x oddział here)


Edit (2013): Ta odpowiedź jest już nieco przestarzały, więc ja po prostu zostawić listę wszystkich wymienionych wtyczek Dodano:


Oryginalna odpowiedź (od 2010 r.):

Możesz rozważyć użycie Media plugin, o którym mówiono podczas ostatniego CakeFest. Jest dość obszerny, zawiera funkcje, takie jak tworzenie odmian plików (np. Miniatury obrazów lub wideo), pomocników do wyprowadzania różnych typów plików i elementów, aby szybciej tworzyć formularze do przesyłania wielu plików; i od samego początku mocno koncentrowałem się na bezpieczeństwie, ponieważ mogę się dowiedzieć od the slides. Używam go w produkcji i uważam, że działa dobrze, i wydaje się być pod większą liczbą active development niż inne opcje, które widziałem, jeśli to coś, przez co można przejść (np. MeioUpload behavior, Uploader plugin, FileUpload plugin i różne posty z piekarni/bloga na ten temat).

+1

Niech ja bezwstydnie dodać [Upload Pack] (https://github.com/szajbus/uploadpack) do listy –

+1

[Uploader] (http://github.com/milesj/cake-uploader/commits/master) i [Upload Pack] (https: // github.com/szajbus/uploadpack) są 2 najczęściej wspieranymi bibliotekami CakePHP 2.x, które znalazłem po pół dnia badań i próbach wdrożenia. – Anthony

+2

[Upload Plugin 2.0] (https://github.com/josegonzalez/upload) autorstwa Jose Diaz-Gonzalez wydaje się teraz dobrym wyborem. –

Powiązane problemy