Newsgroup: it.comp.www.php
Titolo: PHP UPLOAD, aiutatemi

Ciao a tutti ...
uso questo FORM :
<form action="upload.php" method="post" enctype="multipart/form-data">
 Seleziona il file : <input type="file" size=40 name="filex"><br>
 <input type="submit" value="upload">
 </form>
e questo SCRIPT :
$upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/prova";
$file_name = $_FILES["filex"]["name"];
if (is_uploaded_file($_FILES["filex"]["tmp_name"])) {
move_uploaded_file($_FILES["filex"]["tmp_name"],
"$upload_dir/$file_name"); }
per effettuare l'upload di files ...
e tutto funziona alla perfezione ...
ma come mai non riesco a scaricare le immagini così uploadate,  via FTP ??
se digito il loro indirizzo via HTTP, me le visualizza .....
e accedendo via FTP a quella cartella, vedo appunto i files caricati
..... pippo.jpg, pluto.jpg, ecc.
ma non me le fa scaricare .... come posso risolvere sto problema ??
perché succede così ?
___________
Grazie e ciao !

 FTP ??
[cut]
prova a controllare i permessi sui file, probabilmente appartengono 
all'utente apache.
Eventualmente dopo l'upload fai un chmod 777.
Saluti.

 Eventualmente dopo l'upload fai un chmod 777.
proprio ciň che avevo sospettavo pure io, ed infatti avevo provato ....
ma non mi fa nemmeno settare i permessi su quei files uploadati ...
quindi niente 777 ....
550 : Operation not permitted ...
arghhhhhhhhhhhhhhhhhhhhhhh
aiutatemi vi scongiurooooooooo,
sono bloccata di brutto con tutto il lavoro
__________________________________
ma č possibile che non si possano scaricare files da FTP
caricati via HTTP ?!?!?!!?!? mah .... :-(

 550 : Operation not permitted ...
Ok, prova a collegarti con un client ftp "grafico" (es. 
http://www
.
smartftp.com
) che ti permetta di visualizzare le proprieta' dei file, 
controlla il gruppo di appartenenza, potresti non poter fare le 
modifiche perche' non fai parte del gruppo che ha fatto l'upload. 
eventualmente prova a fare chgrp utente.utente dove utente e' il nome 
del tuo utente ftp, poi prova a fare chmod 777.
Se sei in safe_mode = off non dovresti avere problemi a cambiare gruppo 
etc. In alternativa potresti utilizzare uno script perl che normalmente 
non e' limitato nelle funzionalita'.
Saluti.

 etc. In alternativa potresti utilizzare uno script perl
UHHHHH !!!!!! no daiiiiiiiii :-(
per favore, sono entrata da poco nel mondo PHP + APACHE  + MYSQL , ecc.
non fatemi rimpiagere NT + ASP ..... :-((
non è possibile che sia così macchinoso scaricare un semplice file caricato
via http ...
ma non si puo' risolvere il problema a "monte" ?? cioè usando un altro
script di
upload, diverso dal mio, che carichi i files non con il gruppo "apache"
?!?!?!
cmq, nel frattempo,  ti ringrazio tantissimo per i consigli che mi stai
dando !

 ho provato ad inviare dei comandi personalizzati via FTP ma non funziona
Prova a farlo con la funzione chgrp di php.. ma non è detto che funzioni
(vedere manuale).
O un chgrp con  shell_exec .. sempre che che ti sia permesso.

 te intendi via TELNET ?
No, lo puoi fare direttamente da PHP con:
chgrp
chmod
chown
Controlla sul manuale.
Verifica se riesci, dopo l'upload in php, ad eseguire
chown("$upload_dir/$file_name", 777);
In questo modo dovresti poter abilitare i file al download via FTP.
PS.
Il per normalmente lo utilizzo se l'hosting ha impostato safe_mode = on,
 poiche' permette di fare modifiche al filesystem che php non 
permetterebbe (es creazione directory etc.).
Saluti.

 O un chgrp con  shell_exec .. sempre che che ti sia permesso.
no no no no no ... mi rifiutoooo :-)
daiii, ditemi come fare a fare in modo che i files vengano caricati
NORMALMENTE ...
non ditemi che chi carica files sul server via HTTP, poi deve fare tutto
questo
per poterseli scaricare via FTP ....
non ci credooo
cmq, ti ringrazio, proverò !

 NORMALMENTE ...
beh.. in effetti io ho messo come prima cosa di provare a farlo con php.. :)
Il fatto è che potrebbe non andarti.. dipende dalla configurazione della
macchina.
Il cambio di permessi via ftp non poteva andarti perchè appunto non è roba
di quell'utente.. php dovrebbe fartelo.. ma.. dipende.. sempre da quella
macchina :)

ok ragazzi ... missione compiuta .... vi ringrazio tanto !
con chmod("$upload_dir/$file_name", 0777);
riesco nell'intento ... il file ora è a distribuzione popolare :-)
full scaricabile con FTP !
ah, per chi fosse interessato, da notare l'uso del 0777,
altrimenti con 777 non funge.
ok, già che ci sono, vi scrocco un altro consiglio ...
mi hanno detto che non è consigliabile tenere una directory
con permessi 777 dentro il tree dove si trova il sito ....
tipo ... il mio sito si trova tutto in /httpdocs ...
mi hanno detto che la cartella 777,
dovrebbe essere all'infuori di httpdocs ...
e non essere una sottodirectory .. tipo /httpdocs/images
dove images ha permessi appunto 777.
come mai ?? è giustificabile ??
o è una cavolata ??
soprattutto perché NON posso creare cartelle sopra HTTPDOCS !!!

 perché succede così ?
Penso che il perchè del problema sia già stato sviscerato: le immagini sono
dell'utente di apache (www-data in genere). Pertanto non hai quasi nessun
diritto su questi file.
I file però dovrebbero avere permessi 755 (ossia rwxr-xr-x), quindi dovresti
essere in grado di scaricarli via FTP, ma non di cancellarli.
L'unica soluzione potrebbe essere quella di cambiare l'utente di apache, ma
non penso che tu abbia accesso al server e comunque non è una cosa "usuale".
Se il tuo problema è gestire i file, lo devi fare via PHP in quanto l'utente
è quello di Apache; ti consiglio PHPMyExplorer (
http://elegac.free.fr/
).
Ciao
Marco

 o h una cavolata ??
Se lasci una cartella 777 disponibile per l'account anonymous via FTP 
rischi che qualcuno si metta ad uploadare roba.

 rischi che qualcuno si metta ad uploadare roba.
no ... non ho account FTP anonimi su quella macchina ...
mi preoccupavo piuttosto che qualcuno possa caricare uno script
e poi eseguirli via web ....
è possibile ?
posso limitare l'upload ad alcuni tipi di files .... .jpg, .gif, .jpeg ....
ecc.
ma mi dicono che è facilmente aggirabile .....
percio' avevo paura che qualcuno possa caricarsi un bel .php e richiamarlo
via web ...
no ?

 ma mi dicono che h facilmente aggirabile .....
Solo se lo basi sull'estensione, se lo basi sul contet type e' 
difficile aggirarlo.

 con permessi 777 dentro il tree dove si trova il sito ....
Beh, sono d'accordo.
Se vuoi che i file siano semplicemente _leggibili_ via
ftp, fai un chmod a 0644, cioè lettura/scrittura per il php,
lettura per tutti. Se devi anche cancellarli o modificarli
via ftp vai di 0666.
In ogni caso non ha senso assegnare il +x ai file che
non sono né saranno eseguibili.
Il problema di una directory a 0777 è che chiunque può
scriverci dentro, quindi un altro utente potrebbe
metterci dentro roba sua e farla passare per tua.
D'altro canto, anche una directory dell'utente di apache,
con permessi a 0700, presenta gli stessi problemi.
Un utente sullo stesso server si fa un bello script
in php e ti mette immagini o file nella cartella.
Ciao!
-- 
Valerio Granato
http://www.musicoff.com
 - Music Online For Free
La Grande Comunità Online per Musicisti