- Home
- Categorie
- Coding e Sistemistica
- Tutti gli altri Gestionali
- Help in drupal_move_uploaded_file()
-
Help in drupal_move_uploaded_file()
Come da titolo, mi servono delucidazioni in merito a tale funzione.
Mi spiego brevemente.
Dato che drupal non accetta move_uploaded_file(), si è costretti a lavorare con tale funzione. Secondo le api di Drupal 7, tale funzione accetta 2 tipi di variabili:
$filename e $uri
Ovviamente nelle api, non c'è alcuna dicitura su come valorizzare la variabile $filename, visto che indica:
$filename: The filename of the uploaded file.
Quindi a rigor di logica, utilizzo la variabile globale $_FILES['files']['name']
Ora, fatto il punto, nel momento in cui vado a cercare di caricare un file con questa funzione, mi restituisce sempre false.
Ho fatto alcuni debug; il file viene caricato nella cartella temporale, ma non si sposta nella sua destinazione.
Preciso che i permessi anche settati a 777, non cambiano il risultato.
Dopo di che ho pensato il percorso, può essere un problema, ma sempre secondo le api di Drupal 7, impostando la uri in questo modo:
$uri = 'public://site/default/files/';
Il risultato non cambia di una virgola.
Quindi, dov'è che sbaglio ?Grazie in anticipo
Note
Per un riferimento alla funzione, appena cercate in google, esce subito fuori la pagina delle api relativa
-
Ciao, non riesco a fare una prova al volo, ma secondo me stai sbagliando il file. Nel senso che non devi usare $_FILES['files']['name'] ma $_FILES['files']['tmp_name'], e a ricordi di logica è corretto, perché tu devi spostare un file che in questo caso è quello temporaneo.
E ho trovato questo script su internet che magari ti puo' essere d'aiuto:
www exchangeconcept com/2014/09/upload-images-using-_files-in-drupal-7/
Fammi sapere.
M.
-
Ti ringrazio, ma ho risolto stamane. Ripensandoci $uri non è $url ma è url + nome file + estensione, per tanto ( e lo scrivo magari per qualcun'altro )
$filename = $_FILES['files']['tmp_name'];
$uri = 'public://' . $_FILES['files']['name']; // oppure $uri = 'public://nome_file.' . $_FILES['files']['type'];
$result = drupal_move_uploaded_file( $filename, $uri );Grazie lo stesso