Spójrz na file_save_upload () i funkcje, które ją wywołują.
Funkcja zajmie się sprawdzaniem poprawności pliku i zapisze go w nowej lokalizacji. W Drupal 7 powoduje to także dodanie pliku do tabeli zarządzanej przez plik.
Pamiętaj, że plik zostanie zapisany jako plik tymczasowy, więc pamiętaj, aby później ustawić status pliku na stały.
Prawdopodobnie będziesz chciał zaimplementować funkcję file_save_upload w haczyku sprawdzania poprawności formularza (przed procedurą obsługi przesyłania), abyś mógł ostrzec użytkownika, jeśli przesyłanie pliku nie powiedzie się lub nie spełnił twoich wymagań sprawdzania poprawności.
Jeśli nazwa pola obrazu, które próbujesz sprawdzić image
, to pierwszym parametrem file_save_upload powinien być obraz, jako taki:
$ path = file_save_upload ('image', ...);
Ta funkcja zwróci następnie ścieżkę na serwerze, na który został przesłany obraz (dzięki czemu można na przykład zapisać tę ścieżkę w niestandardowym polu bazy danych).
$form['#attributes']['enctype']
w Drupal 7. Zajmuje się to automatyczniemultipart/form-data
dla Drupala 7, jest on wbudowany w Drupala 7, gdy używasz pola pliku.$file === null
, co oznacza, żeno file was uploaded
(zgodnie ze specyfikacją: api.drupal.org/api/drupal/include!file.inc/function /… ) Co powinienem zrobić w takim przypadku? Jak mogę debugować tego rodzaju rzeczy?Mam ogólną funkcję sprawdzania poprawności, której używam głównie w motywach, które muszą obsługiwać przesyłanie zdjęć. Możesz być w stanie używać go jako takiego lub z drobnymi zmianami, ale to powinno doprowadzić cię daleko.
Korzystając z tej funkcji, otrzymasz ścieżkę do pliku jako wartość w formularzu procedury obsługi przesyłania. Możesz zamiast tego chcieć identyfikator pliku, w zależności od użycia.
źródło