Home Page

6 Marzo 2008

File Upload con Flash e PHP

Già da diverso tempo è stata introdotta la classe actionscript flash.net.FileReference che permette la gestione degli upload/download da Flash Player.
Abbiamo già usato in Webgriffe questa classe per diversi progetti web, in particolare per backoffice e web applications, ma recentemente ci siamo scontrati con un malfunzionamento di questo tipo di implementazione su un sito in Flash ospitato su TopHost al quale dovevamo permettere l’upload di curricula tramite form.
Accadeva che all’atto dell’upload il file non veniva scritto sul server ma veniva restituito un HTTPError 406.
Il problema si presentava solo sul server di TopHost e consultando le FAQ e la guida tecnica fornita dal mantainer abbiamo concluso che era causato da impostazioni di sicurezza. In pratica TopHost blocca l’attribuzione di permessi a file e cartelle superiori al chmod 0750.

Per completezza di informazione riporto il code actionscript utilizzato:

import flash.net.FileReference;var fileTypes:Array = new Array();
var allowedTypes:Object = new Object();
allowedTypes.description = "Documenti (*.pdf, *.doc, *.rtf, *.txt)";
allowedTypes.extension = "*.pdf; *.doc; *.rtf; *.txt";
fileTypes.push(allowedTypes);
var fileRef:FileReference = new FileReference();
var listener:Object = new Object();
listener.onComplete = function() {
trace("CURRICULUM FILE UPLOADED!");
};

listener.onHTTPError = function(file:FileReference, error:Number):Void {
trace("onHTTPError: " + file.name + " Error: " + error);
}

fileRef.addListener(listener);
curriculaForm.btn_browse.btn.onRelease = function() {
fileRef.browse(fileTypes);
};

e il codice PHP invece

if ($_FILES['Filedata']['name']) {$uploadDir = "/uploadedfiles/curricula/";
$uploadFile = $uploadDir.$_FILES['Filedata']['name'];
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
}

Per aggirare il problema ci sono sostanzialmente due soluzioni da provare.

  1. Dal pannello di controllo di TopHost cliccare il pulsante “Ripristina spazio web” che reimposta i permessi corretti alle cartelle e ai file del sito.
  2. Modificare il codice PHP precedente aggiungendo il comando chmod($uploadFile, 0644) subito dopo move_uploaded_file(...)

Pubblicato in Flash, Actionscript

2 Commenti a “File Upload con Flash e PHP”

  1. erny scrive:

    come avete risolto il problema ?

  2. Cristian Galletti scrive:

    Ciao Erny, ho aggiornato il post con le soluzioni che abbiamo utilizzato. Scusami ma mi rendo conto che non era chiaro come era stato risolto il problema. Grazie.

Scrivi un commento

TROVA:

Abbonati ai Feed RSS di questo Blog Abbonati ai Feed RSS di questo Blog Informazioni su questo blog Informazioni su questo blog Scarica lo screen saver di shines Scarica lo screen saver di shines