Back to top

Autore Topic: Upload file con JFTP, si creano solo le cartelle.  (Letto 1442 volte)

Offline Kumidan

  • Nuovo arrivato
  • *
  • Post: 31
    • Mostra profilo
Upload file con JFTP, si creano solo le cartelle.
« il: 08 Ott 2011, 13:43:40 »
Da una form nel frontend del mio componente devo fare l'upload tramite FTP, ma sto avendo dei problemi.

Quando avviene il submit della form, la mia funzione che si occupa di gestire l'upload legge alcuni altri campi in modo da costruire il path dove salvare il file.

tramite i metodi chdir() e mkdir() vado nella cartella di interesse e se non esiste la creo.
Fin qui tutto bene, funziona perfettamente.

I problemi iniziano quando devo salvare il file, il metodo store() fallisce sempre, lo uso in questo modo

$ftp->store($upfile['immagine']['tmp_name'], $new_filename);
in cui il primo parametro contiene il file temporaneo caricato dalla form (ho verificato che ci sia realmente path e nome del file), il secondo parametro contiene invece il nome con cui voglio che il file venga salvato (c'è solo il nome del file perché quando arrivo alla store() sono già nella cartella giusta in cui voglio salvare il file).

per fare delle prove ho sostituito la store con
$ftp->create('fileprova.txt'); //fallisce
$ftp->mkdir('dirprova'); //crea correttamente la directory

Perché posso creare le cartelle, ma non i file? Dato che posso creare le cartelle, i permessi dovrebbero essere corretti.
Cosa può esserci che non va? Uso male il metodo store()? create() però dovrebbe essere sicuramente corretto e non funziona comunque... sto impazzendo.  :'(

mau_develop

  • Visitatore
Re:Upload file con JFTP, si creano solo le cartelle.
« Risposta #1 il: 08 Ott 2011, 14:14:23 »
secondo me è una questione di path

http://api.joomla.org/Joomla-Framework/Client/JFTP.html

M.

Offline Kumidan

  • Nuovo arrivato
  • *
  • Post: 31
    • Mostra profilo
Re:Upload file con JFTP, si creano solo le cartelle.
« Risposta #2 il: 08 Ott 2011, 15:38:56 »
Lasciando un attimo stare store().
mkdir() e create() hanno la stessa segnatura, entrambi vogliono una stringa che indichi il path (il secondo comprensivo di un nome per il file), ma mkdir() mi funziona, create() invece no.

mkdir() crea la cartella esattamente nella posizione in cui mi aspetto, quindi i vari chdir() precedenti sono corretti e mi portano nella cartella giusta.

per create() ho visto in giro questa pagina di wiki con uno script di esempio che la usa in questo modo

$ftp->create('test/fairyTale.txt');

quindi indicando anche una cartella prima del nome del file.
Ho provato dunque a fermarmi un livello prima nella mia funzione in modo da avere

$ftp->create('upimages/test.txt');

ma niente da fare, il file non vuole saperne di essere creato.

Possono esserci impostazioni particolari sul server che causino questo problema?

mau_develop

  • Visitatore
Re:Upload file con JFTP, si creano solo le cartelle.
« Risposta #3 il: 08 Ott 2011, 16:12:48 »
con che permessi crea quella cartella? è successivamente scrivibile? Normalmente installi le estensioni senza dover cambiare i permessi?

col debug non vedi nulla?

M.

 



Web Design Bolzano Kreatif