Vai al contenuto

Problema fopen, fwrite, fclose


Messaggi raccomandati

Ciao a tutti!

Su una mia pagina ricevo in POST un'immagine allegata di un MMS codificata in base64

Eseguo questo script:

// Decodifico l'immagine 
   $img = base64_decode($contentImg); 

   // Creo l'immagine 
   $fp = fopen("./attach/".$filenameImg, "wb"); 
   fwrite($fp, $img); 
   fclose($fp);  

in locale funziona benissimo, ma sul server ricevo dei warning e non funge

Warning: fopen(./attach/image.gif): failed to open stream: Permission denied in /home/httpd/vhosts/***/test.php on line 41

Warning: fwrite(): supplied argument is not a valid stream resource in /home/httpd/vhosts/***/test.php on line 42

Warning: fclose(): supplied argument is not a valid stream resource in /home/httpd/vhosts/***/test.php on line 43

Ho cambiato anche i permessi della cartella a 774, sia al file che esegue lo script che alla cartella dove eseguo la fopen etc, ma il risultato non cambia!

Come posso risolvere?

Grazie

Link al commento
Condividi su altri siti

774 potrebbero non essere sufficienti: chi accede al server via web non è né lo user né il group. prova con 776.

l'altro punto di inghippo potrebbe essere questo: se sul server è abilitato il safe-mode, PHP controlla che la directory nella quale si sta lavorando abbia lo stesso user id dello script che è in esecuzione. dovrebbe essere già tutto a posto quando carichi i file sul server, però prova a controllare anche questa cosa qua.

prova anche a usare w+b invece di wb

Serve aiuto? Posso darti una mano in

Webmasters - Aiuto Software - Da Windows a Mac

Mappa Utenti ItaliaMac

[[miao]]

Link al commento
Condividi su altri siti

774 potrebbero non essere sufficienti: chi accede al server via web non è né lo user né il group. prova con 776.

l'altro punto di inghippo potrebbe essere questo: se sul server è abilitato il safe-mode, PHP controlla che la directory nella quale si sta lavorando abbia lo stesso user id dello script che è in esecuzione. dovrebbe essere già tutto a posto quando carichi i file sul server, però prova a controllare anche questa cosa qua.

prova anche a usare w+b invece di wb

Allora ho messo w+b e settato i permessi a 776 come mi hai detto e non ho risolto nulla!

Mi spieghi meglio come faccio a controllare la cosa dell'userid non ho capito bene!

Grazie

Link al commento
Condividi su altri siti

prova allora a modificare il codice in questo modo:

// Decodifico l'immagine 
   $img = base64_decode($contentImg); 


// Creo comunque il file di destinazione 
  touch ("./attach/".$filenameImg);   


// Creo l'immagine 
   $fp = fopen("./attach/".$filenameImg, "wb"); 
   fwrite($fp, $img); 
   fclose($fp);  

occhio che $filenameImg deve essere già definito in questo punto del codice, altrimenti fopen ti apre una directory invece che un file.

Serve aiuto? Posso darti una mano in

Webmasters - Aiuto Software - Da Windows a Mac

Mappa Utenti ItaliaMac

[[miao]]

Link al commento
Condividi su altri siti

ti ringrazio, ma prima di leggere la tua mail ho fatto la prova di lasciare i permessi normali al file che esegue lo script e ho settato 777 alla cartella attach funziona senza dare warning!

Però sono dubbioso perchè ricordo di aver fatto questa prova anche prima

di scrivere sul forum! bhò! :S

Fatto sta che ora funge! :confused:

Però mi rende perplesso il fatto di lasciare 777 quella cartella!

E' una cosa brutta? :ghghgh:

Link al commento
Condividi su altri siti

beh insomma: vuol dire che è lì aperta a tutto, da un punto di vista di security non è il massimo

comunque, ora che hai una soluzione, fai la prova anche col sistema che ti ho suggerito (quello col touch) e vedi se va anche con permessi un pochino più "robusti"

Serve aiuto? Posso darti una mano in

Webmasters - Aiuto Software - Da Windows a Mac

Mappa Utenti ItaliaMac

[[miao]]

Link al commento
Condividi su altri siti

beh insomma: vuol dire che è lì aperta a tutto, da un punto di vista di security non è il massimo

comunque, ora che hai una soluzione, fai la prova anche col sistema che ti ho suggerito (quello col touch) e vedi se va anche con permessi un pochino più "robusti"

Ok domani provo e ti faccio sapere! Grazie mille!

Buona serata!

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...