Bonjour.

Je colle ici du code qui fonctionne chez moi(c)(r).


function uploadFile() {
    // On récupère le basedir, chemin où déposer le fichier
var basedir = cocoon.parameters["realPath"] + cocoon.parameters["contextPath"] + "static/";
    var urlbase = cocoon.parameters["contextUrl"] + "static/";

    // On instancie et affiche le formulaire
    var form = new Form("backend/upload/form-definition.xml");
    var k = form.showForm("protected-upload-remplir.form");

    // On récupère le modèle et le nom du fichier a uploader
    var model = form.getModel();

    var filename = generateRandomSerial(5);
    if (model.filename == null || model.filename == "") {
filename = filename + "-" + form.lookupWidget("upload").getValue().getHeaders().get("filename");
    } else {
        filename = filename + "-" + model.filename;
    }

    // Chemin complet du fichier a créer
    var uploadedFilename = basedir + filename;

    // Test pour voir si le fichier existe déjà
    if (new java.io.File(uploadedFilename).exists()) {

        // Le fichier existe => page d'erreur
cocoon.sendPage("protected-upload-file_exists.message", {"filename": filename});
    } else {

        // Le fichier n'existe pas, on continue, on vérifie si le
        // champs upload contient bien quelquechose
if ((null != form.lookupWidget("upload")) && (null != form.lookupWidget("upload").getValue())) {
            // On loggue l'upload
            myotisLogger("upload du fichier "+filename);
            // On appelle la fonction de renommage pour mettre le
            // fichier dans le répertoire d'upload
            var aPart = form.lookupWidget("upload").getValue();
            write(aPart, uploadedFilename);

            var bizData = { "completeFilename": urlbase+filename,
                            "filename": filename
            }
            cocoon.sendPage("protected-upload-confirmer.message", bizData);
        }
        // Ici, on devrait peut-être mettre une page d'erreur
    }
}

function write(part, targetFilename) {
    // Code pour renommer (déplacer) le fichier du dépôt temporaire du
    // webapp server au fichier indiqué dans le targetFilename

    // On créé un nouveau fichier contenant l'upload
    var srcFile = new java.io.File(part);

    // On créé un nouveau fichier avec pour nom le path du target
    var targetFile = new java.io.File(targetFilename);

    // On créé l'arborescence au cas où elle n'existe pas
    targetFile.getParentFile().mkdirs();

    // on effectue le renommage
    srcFile.renameTo(targetFile);

    // On retourne le chemin du fichier créé
    return targetFilename;
}

Cdlt.
--
Aurélien

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]

Répondre à