Sto lavorando al caricamento di file tramite una pagina Web con una barra di avanzamento utilizzando Valums file uploader. Quasi tutto funziona correttamente, ma non sono in grado di modificare la directory tmp predefinita, in cui il file viene archiviato durante il caricamento.Impostazione PHP tmp dir - Caricamento PHP non funzionante
I file devono essere conservati in /upload
directory e non nel sistema di default /tmp
directory, perché /tmp
è montato in un disco RAM che ha la sua dimensione limitata a 4 MB e utente sarà il caricamento di file di circa 10 MB .
Ho cercato molte pagine Web, ma nessuna delle soluzioni ha funzionato. Ho impostato directory temp nella php.ini
:
upload_tmp_dir =/upload
Ho impostato le autorizzazioni al /upload
dir e apache è proprietario del file, in modo che la directory è sicuramente scrivibile da PHP.
Ho impostato il percorso di destinazione nel file uploader su /upload
, perché voglio che i file vengano memorizzati dopo il caricamento anche in questa directory. Il risultato finale è che i file di piccole dimensioni vengono caricati con successo, ma i file più grandi di 4 non riescono a caricare, l'unico motivo di questo comportamento che mi viene in mente è che i file sono memorizzati in /tmp
durante il caricamento. Per sicurezza, l'ho controllato con sys_get_temp_dir()
e il risultato è stato /tmp
-so PHP ignora la mia direttiva php.ini o c'è un altro modo per impostare dove i file vengono memorizzati durante il caricamento.
Oh, e l'ultima informazione: open_basedir
non è impostata, quindi l'accesso PHP al disco è limitato solo dai permessi dei file.
avere riavviato il server di (scusate per questa stupida domanda)? – soju
Non ci sono domande stupide, solo risposte stupide :). Sì, l'ho fatto molte volte mentre cercavo di risolvere il problema e provare diverse soluzioni. – Wookie88
Hai controllato che php non sia installato come cgi mod? (Da doc: * Se la directory specificata qui non è scrivibile, PHP torna alla directory temporanea predefinita di sistema *) – soju