PHP : Move_uploaded_file() - Page 2

Résolu
Précédent
  • 1
  • 2
  • 3
  1. sethyy Messages postés 32 Statut Membre 16
     
    je n'y arrive pas, ca ne fonctionne pas :-(
    0
  2. sethyy Messages postés 32 Statut Membre 16
     
    mais pourquoi mon upload en javascript ne marche pas ?!
    0
  3. briiiiix Messages postés 624 Statut Membre 18
     
    parce que javascript est executé du coté client et peut etre que t'as commis des erreurs, tu me montre ton code pour que je le corriges ?
    0
  4. sethyy Messages postés 32 Statut Membre 16
     
    Comme je te le disais, la source se trouve sur le lien suivant : http://olance.ftp-developpez.com/articles/web/javascript/multiupload/fichiers/MultiUpload.zip

    Il y a plusieurs fichiers javascript dedans, mais le problème est que le fichiers upload.php n'est pas du tout complet, il ne transfert rien du tout vers le serveur, il affiche un message de confirmation d'upload...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. briiiiix Messages postés 624 Statut Membre 18
     
    Ok je viens de le telecharger mais, j'y travailles dessus ce soir si tu n'est pas si pressé
    A+
    0
  7. sethyy Messages postés 32 Statut Membre 16
     
    Oh tu sais j'peux bien attendre un soir de plus depuis le temps que je m'arrache les cheveux dessus... Merci beaucoup en tout cas!
    0
  8. briiiiix Messages postés 624 Statut Membre 18
     
    Bon j'ai eu le temps de tester et j'ai du modifier un peu ton fichier multiupload.js pourque ça marche.
    Comment tu veux que je t'envoi les fichiers, par mail ? ou par un copier coller sur le forum ?
    0
  9. jonas001 Messages postés 85 Statut Membre 9
     
    Sur le forum stp !!! :-)
    Je m'arrache aussi les cheveux dessus depuis un moment sans rien trouver de bon.
    0
  10. briiiiix Messages postés 624 Statut Membre 18
     
    Ok, je commences par te copier le code du fichier upload.php, puis des que tu me confirmes que tu l'as reç, je te copie le code du fichise multiupload.js

    Bien sure, c'est un exemple, donc les noms des fichiers destinations sont generiques et les types autorisés sont des jpg, si t'as besoin de modifier, alors vas y, mais attention aux erreurs

    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <title>Upload de plusieurs fichiers</title>
    </head>
    <body>
    <?php
    if(isset($_POST['uploader'])){
    $content_dir = ""; // dossier où sera déplacé le fichier
    $i =0;
    foreach($_FILES as $fichier)
    {
    $i ++;
    $input_name = "fichier".$i;
    $tmp_file = $_FILES[$input_name]['tmp_name'];
    if( !is_uploaded_file($tmp_file))
    { echo"File not found";
    }else {
    // on vérifie maintenant l'extension
    $type_file = $_FILES[$input_name]['type'];
    if( !strstr($type_file, 'jpeg'))
    { echo"Incompatible file type";
    } else {
    if( strstr($type_file, 'jpeg')) { $typefichier = ".jpg";}
    // on copie le fichier dans le dossier de destination
    $destination = rand();
    $name_file = $destination.$typefichier;
    echo "Fichier $name_file uploadé avec succes<br />";
    if( !move_uploaded_file($tmp_file, $content_dir.$name_file) )
    { echo"File upload failed";
    } else {
    }}}
    }
    }
    ?>
    </body>
    </html>

    Dis moi quand tu es prêt pour mettre a jour le dichier js
    0
  11. sethyy Messages postés 32 Statut Membre 16
     
    c bon jonas, tu peux envoyer multiupload.js !
    0
  12. briiiiix Messages postés 624 Statut Membre 18
     
    vas y donc, remplaces tout le contenu de ton fichier et fais ton test, puis reponds moi

    //----------------------------------------
    var nbrFichiers = 0;

    function init()
    {
    //Création d'un premier input
    creerInput();
    }

    //Fonction renvoyant le nom d'un fichier à partir de son chemin complet
    function getFileName(fileName)
    {
    if (fileName != "") {
    if (fileName.match(/^(\\\\|.:)/)) {
    var temp = new Array();
    temp = fileName.split("\\");
    var len = temp.length;
    fileName = temp[len-1];
    } else {
    temp = fileName.split("/");
    var len = temp.length;
    if(len>0)
    fileName = temp[len-1];
    }
    }
    return fileName;
    }

    function creerInput()
    {
    //Création de l'élément input
    var input = document.createElement("input");
    input.type = "file";

    //Lorsqu'un fichier est choisi, on ajoute son nom à la liste
    input.onchange = function() {
    ajouterFichier(this);
    }

    //Ajout de l'input au document
    $("input").appendChild(input);

    }

    function ajouterFichier(input)
    {
    if(nbrFichiers == 0)
    $("fichiers").removeChild($("fichiers").firstChild);

    //Création de la ligne dans la liste des fichiers à uploader
    var fichier = document.createElement("p");

    //Image de suppression
    var image = document.createElement("img");
    image.src = "images/suppr.gif";
    image.alt = "supprimer";
    Element.setStyle(image, {border: "0px", verticalAlign: "top"});

    //Lien pour supprimer
    var lnk = document.createElement("a");
    lnk.href= "#";
    lnk.onclick = function () {
    supprimerFichier(fichier, input);
    }
    //Ajout de l'image dans la balise de lien
    lnk.appendChild(image);

    //Ajout du lien à la ligne de la liste
    fichier.appendChild(lnk);

    //Ajout du nom du fichier
    fichier.appendChild(document.createTextNode(" " + getFileName(input.value)));
    Element.setStyle(fichier, {margin: "0", padding: "0"});

    //Ajout de l'item à la liste
    $("fichiers").appendChild(fichier);
    nbrFichiers++;

    //Affectation de l'attribut name de l'input
    nom_du_fichier = 'fichier'+nbrFichiers
    input.name = nom_du_fichier

    new Effect.Highlight(fichier, {startcolor: "#7fd9ff", endcolor: "#FFFFFF"});

    //Création d'un nouvel input pour un nouveau fichier
    Element.hide(input);
    creerInput();
    }

    function supprimerFichier(item, input)
    {
    //Suppression de l'item dans la liste des fichiers à uploader
    new Effect.Fade(item, {afterFinish: function () { finSuppr(item); } });

    //Suppression de l'input pour que le fichier supprimé ne soit pas envoyé par le formulaire
    $("input").removeChild(input);
    }

    function finSuppr(item)
    {
    $("fichiers").removeChild(item);

    nbrFichiers--;
    if(nbrFichiers == 0)
    $("fichiers").appendChild(document.createTextNode("Aucun fichier à uploader"));
    }
    0
  13. sethyy Messages postés 32 Statut Membre 16
     
    aucun changement, si ce n'est qu'une fois que l'on appuie sur le bouton upload, on est redirigé vers une page blanche...
    0
  14. briiiiix Messages postés 624 Statut Membre 18
     
    T'as du commetre une erreur, donc je penses que je dois t'envoyer le package par mail, envoi moi un message perso sur le forum contenant ton mail sinon rejoinds moi sur skype j'utilises le même pseudo
    0
    1. marmotte
       
      Bonjour briiiiix,

      j'ai testé les scripts que tu as posté sur le forum et moi aussi j'ai une page blanche quand je valide.
      Quand je veux afficher le contenu de : $_POST['uploader'] je n'ai rien. Alors je me demande à quoi correspond uploader en fait.

      Si tu peux m'aider où m'envoyer par email aussi le package.
      Merci beaucoup

      Bonne journée
      0
    2. Falami
       
      Salut!!!

      Je sais, je pose ma question un petit tard aussi, mais si tu peux me faire parvenir le même code je t'en remercierai fortement...

      andyroddick30@hotmail.fr
      0
  15. briiiiix Messages postés 624 Statut Membre 18
     
    c'est bon pour le mail
    Bon travail
    0
  16. sethyy Messages postés 32 Statut Membre 16
     
    Un grand merci a briiiiix sans qui on aurait jamais pu s'en sortir... Merci encore !!!
    0
  17. briiiiix Messages postés 624 Statut Membre 18
     
    Content de l'apprendre, j'ajoutes juste que pourque le script tourne, il faut que le framework prototype.js soit present, en cas où un des internautes vebut s'en servir .
    0
    1. laurita40 Messages postés 1 Statut Membre
       
      Tu pourrais m'envoyer par mail le package stp?, merci beaucoup !
      0
  18. jackyc_french
     
    Bonjours,
    Dites moi, s'il vous plait, pourquoi le code si deçus me retourne une erreur dans move_uploaded_file()? Je me prends la tete pendant plusieurs jours decus, le code me parait correct, mais a chaque fois me retourne les erreurs suivants:
    Warning: move_uploaded_file(/home/monsite/photos/laposte_zoom.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP 3.0\www\88888888\11\30.php on line 34

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Program Files\EasyPHP 3.0\tmp\php5E.tmp' to '/home/monsite/photos/laposte_zoom.jpg' in C:\Program Files\EasyPHP 3.0\www\88888888\11\30.php on line 34

    <?php

    if(isset($_FILES['photo']))
    {
    // params
    unset($erreur);
    $extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
    $taille_max = 500000;
    $dest_dossier = '/home/monsite/photos/';
    // vérifications
    if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
    {
    $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
    }
    elseif( file_exists($_FILES['photo']['tmp_name'])
    and filesize($_FILES['photo']['tmp_name']) > $taille_max)
    {
    echo filesize($_FILES['photo']['tmp_name']);
    echo "<br>";
    echo $taille_max;
    $erreur = 'Votre fichier doit faire moins de 500Ko !';
    }
    // copie du fichier
    if(!isset($erreur))
    {
    $dest_fichier = basename($_FILES['photo']['name']);
    // formatage nom fichier
    // enlever les accents
    $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    // remplacer les caracteres autres que lettres, chiffres et point par _
    $dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
    // copie du fichier
    echo $_FILES['photo']['tmp_name']."<BR>".$dest_dossier.$dest_fichier;
    move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
    }
    }

    ?>
    <html>
    <body>
    <!-- Erreur ? -->
    <?php
    if(isset($erreur)){
    echo '<p>', $erreur ,'</p>';
    }
    ?>
    <!-- Formulaire -->
    <!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
    <form method="POST" action="30.php" enctype="multipart/form-data">
    <!-- Limiter la taille des fichiers à 500Ko -->
    <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
    <fieldset>
    <legend>Envoi de fichiers</legend>
    <!-- champs d'envoi de fichier, de type file -->
    <p><label for="photo">Photo :</label><input type="file" name="photo" /></p>
    <p><label for="photo_2">Photo 2 :</label><input type="file" name="photo_2" /></p>
    <!-- bouton d'envoi -->
    <p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
    </legend>
    </fieldset>
    </form>
    </body>
    </html>

    Merci d'avance.
    Cordialement.
    0
  19. greg6614
     
    Salut je peut le faire en .bat si tu veut mais tout dépend si tu veut envoyer plusieurs fichier ou un seul.
    0
  20. jackyc_french
     
    Non, en .bat, ca m'interesse pas vraiement, car, je préfère le faire en php, car derière il y aura aussi une base de donnés qui sera mise a jours.
    0
  21. le père
     
    Bonjour

    Unable to move 'C:\Program Files\EasyPHP 3.0\tmp\php5E.tmp' to '/home/monsite/photos/laposte_zoom.jpg'

    Es-tu sûr que le dossier /home/monsite/photos/ existe à la racine du lecteur courant ?
    Car s'il n'existe pas, il est normal que tu ne puisses pas y copier un fichier.
    0
Précédent
  • 1
  • 2
  • 3