[Risolto] Upload Immagini

Salve ragazzi eccomi qui anche di domenica :D

Ho un dubbio vorrei caricare una serie di immagini con antemprima e dopo salvare le immagini o nel db in maniera binaria oppure salvare le immagini in una cartella e i percorsi nel db. Volevo sapere se ci fosse un’estensione in yii che faccesse questo oppure una wiki da seguire?

Ho trovato questo: http://www.yiiframework.com/wiki/2/how-to-upload-a-file-using-a-model/

grazie sensorario il problema ora sta nel creare la directory per salvare le immagini mi da errore di permessi ovvero


move_uploaded_file(.../images/immagini_strutture/dssadas/images.jpg): failed to open stream: No such file or directory 

ho provato sia con 755 e con 777 ma niente




if(!is_dir(Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura)) {

                   mkdir(Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura);

                   chmod(Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura, 0777); 

                   // the default implementation makes it under 777 permission, which you could possibly change recursively before deployment, but here's less of a headache in case you don't

                }



Hai verificato che effettivamente l’istruzione :


Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'

punti al percorso desiderato ? Io quel [color="#8B0000"]failed to open stream: No such file or directory[/color] l’ho sofferto per una semplice maiuscola, che su linux non si scherza !!

Poi leggendo qui su php.net vedo che c’è la possibilità di stabilire sulla stessa riga il livello dei permessi (chmod) e per di più il recursive mode (settare stesso permesso alle cartelle e ai files figli) prova con :


mkdir(Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura, 0777, true);




Settare i permessi alla creazione della dir è abbastanza inutile (in questi casi) in quanto se nella dir hai già i privilegi per creare qualcosa significa che "apache" è il proprietario della dir che andrà a creare e che quindi potrà farci tutto!

Comunque "failed to open stream: No such file or directory" sembra un problema di path o nomefile, cioè non trova il file più che un permesso negato, come dice paskuale verifica bene il nome delle dir nei sistemi LAMP i nomi sono case sensitive.

Ragazzi scusate il ritardo… Allora ho controllato tutto ovvero :


Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'

punta alla cartella desiderata.


mkdir(Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura, 0777, true);

 

solito errore

  1. ho controllato maiuscole e minuscole tutto bene.

Cosa potrebbe essere :blink: :blink: :blink:

mumble mumble


move_uploaded_file(.../images/immagini_strutture/dssadas/images.jpg): failed to open stream: No such file or directory 

Ma l’errore è ancora questo?

quel path mi sembra strano…

purtroppo si…

Il problema e che non mi crea la directory

Hai il permesso di scrittura?

Si 0777…

Allora la scrittura nel file nella cartella madre ovvero ‘immagini_strutture’ funziona ma se li vado ad aggiungere immagini_strutture/.$var non mi funziona :(

Scusami, mi stamperesti il valore di:


Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura

???

ma se l’errore lo da move_uploaded_file perché incolpi mkdir?

Ok ragazzi risolto il problema non era questo


if(!is_dir(Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura)) {

                                    echo Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura; 

                                    mkdir(Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura);                 

                                    chmod(Yii::getPathOfAlias('webroot').'/images/immagini_strutture/'. $model->nome_struttura, 0777); 

                                    // the default implementation makes it under 777 permission, which you could possibly change recursively before deployment, but here's less of a headache in case you don't

                                 }



ma il punto dove l’andava a creare, ovvero la creavo dopo il salvataggio ::) ::) ::) scusate errore logico mio… potete bestemiarmi se volete :D