Sono diverse ore che sto cercando di risolvere un problema: upload di un filmato.
In particolare ho fatto un form per l’invio dei dati. Funziona tutto bene. Arrivo a selezionare il mio video, e quindi a caricarlo. Poi arrivo nella actionCreate(). Vedo normalmente la variabile $_FILES ma non accade nulla all’esecuzione di $model->path->saveAs($new);
Ho anche impostato error_reporting = E_ALL.
Ho provato ad impostare post_max_size = 888M.
Non riesco a comprendere quale sia l’errore. Ho anche impostato a 777 i permessi della cartella “media” dove, in teoria, dovrei andare a salvare il filmato. Il percorso ($new) è corretto: /var/www/NOME_SITO/media. Che cosa non vedo? Dove sto sbagliando?
public function actionCreate() {
$model = new Videos;
if (isset($_POST['Videos'])) {
$model->attributes = $_POST['Videos'];
if ($model->save()) {
if (@$_FILES['Videos']['name']['path']) {
if (CUploadedFile::getInstance($model, 'path') != "") {
$model->path = $_FILES['Videos']['name']['path'];
$path = substr(Yii::app()->basePath, 0, strrpos(Yii::app()->basePath, '/')) . '/media';
$new = $path.'/'.$model->path;
$model->path->saveAs($new);
}
}
$this->redirect(array('view', 'id' => $model->id));
}
}
$this->render('create', array(
'model' => $model,
));
}
Wow! Sono andato in CUploadedFile modiicandolo in questo modo:
public function saveAs($file, $deleteTempFile=true) {
die($this->_tempName . '<br />' . $file);
}
Ho scoperto che il nome del file temporaneo e del nome nuovo erano identici. A questo punto sono tornato nella mia actionCreate. Ho fatto un var_dump($_FILES). Guarda un po’ che cosa è saltato fuori:
Ti ringrazio. Il problema non era quello del mio vecchio post. Non era nemmeno quello del post inglese.
Però nel mio vecchio post, rebus mi aveva dato un suggerimento per il file php.ini. Questa volta era una impostazione di questo file. In particolare. Non avevo impostato nessuna directory temporanea.
Dovrebbe essere andato tutto a posto. Ed in più ho imparato anche una cosa nuova di php.ini =). Non solo un vecchio post mi è stato utilissimo per trovare una soluzione al problema. Grazie ancora mdomba.