IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

upload en php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 37
    Par défaut upload en php
    bonjour à tous,

    j'ai trouvé un script sur le net mais il ne semble pas fonctionner sur mon site.

    Voici le code source

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8" />
        <title>AJAX Image Uploading</title>
    </head>
    <body>
        <p>Image uploader</p>
        <form id="formAjax" action="uploadHandling.php" method="POST">
            <input type="file" id="fileAjax" name="fileAjax" /><br /><br />
            <input type="submit" id="submit" name="submit" value="Upload" />
        </form>
        <p id="status"></p>
        <script type="text/javascript" src="imageUpload.js"></script>
    </body>
    </html>

    voici le uploadHandling.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
        $currentDir = getcwd();
        $uploadDirectory = "./uploads/";
     
        // Store all errors
        $errors = [];
     
        // Define available file extensions
        $fileExtensions = ['jpeg','jpg','png','gif'];
     
       //if(!empty($_POST['fileAjax']) || $_FILES['image']) {
            $fileName = $_FILES['myFile']['name'];
            $fileTmpName  = $_FILES['myFile']['tmp_name'];
            $fileType = $_FILES['myFile']['type'];
            $fileExtension = strtolower(pathinfo($fileName,PATHINFO_EXTENSION));
     
            $uploadPath = $currentDir . $uploadDirectory . basename($fileName); 
     
            //echo $uploadPath;
     
            if (isset($fileName)) {
                if (! in_array($fileExtension,$fileExtensions)) {
                    $errors[] = "JPEG, JPG, PNG and GIF images are only supported";
                }
                if (empty($errors)) {
                    $didUpload = move_uploaded_file($fileTmpName, $uploadPath);
                    if ($didUpload) {
                        echo "The image " . basename($fileName) . " has been uploaded.";
                    } else {
                        echo "An error occurred while uploading. Try again.";
                    }
                } else {
                    foreach ($errors as $error) {
                        echo $error . "The following error occured: " . "\n";
                    }
                }
            }
        //}
    }
    ?>
    et le fichier imageUpload.js
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    var myForm = document.getElementById('formAjax');  // Our HTML form's ID
    var myFile = document.getElementById('fileAjax');  // Our HTML files' ID
    var statusP = document.getElementById('status');
     
    myForm.onsubmit = function(event) {
        event.preventDefault();
     
        statusP.innerHTML = 'Uploading...';
     
        // Get the files from the form input
        var files = myFile.files;
     
        // Create a FormData object
        var formData = new FormData();
     
        // Select only the first file from the input array
        var file = files[0]; 
     
        // Check the file type
        if (!file.type.match('image.*')) {
            statusP.innerHTML = 'The file selected is not an image.';
            return;
        }
     
        // Add the file to the AJAX request
        formData.append('fileAjax', file, file.name);
     
        // Set up the request
        var xhr = new XMLHttpRequest();
     
        // Open the connection
        xhr.open('POST', '/uploadHandling.php', true);
     
        // Set up a handler for when the task for the request is complete
        xhr.onload = function () {
          if (xhr.status == 200) {
            statusP.innerHTML = 'Upload complete!';
          } else {
            statusP.innerHTML = 'Upload error. Try again.';
          }
        };
     
        // Send the data.
        xhr.send(formData);
    }

    j'ai essayé de contacter son concepteur, malheureusement sans réponse.
    J'ai essayé de mettre toutes les autorisations du repertoire "./uploads/"
    j'ai systématiquement le message "Upload error. Try again."

    Si vous avez du courage et désirez m'aider : merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Bonjour,

    j'ai reproduit ton code, et envoye la request sur un server node, ainsi j'ai put tester le html et le javascript, cela fonctionne parfaitement.

    J'ai debugge ton js le 'formData' contient bien l'image en Binary et la req arrive bien au server. Par contre etant donne que j'ai utilise un server que j'utilise a autre chose, la request est finalement rejete (completement normal). Au niveau du formulaire apparait le meme message d'erreur que toi ""Upload error. Try again."

    Tu as donc probablement un probleme au niveau de ton server..... As tu bien configure le CORS acces ??

Discussions similaires

  1. [Upload] Upload images php
    Par lls dans le forum Langage
    Réponses: 15
    Dernier message: 19/07/2007, 18h23
  2. [EasyPHP] Taille de l'upload dans php.ini
    Par camzo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 28/12/2006, 17h09
  3. [Upload] Une page d'upload en PHP
    Par punisher999 dans le forum Langage
    Réponses: 4
    Dernier message: 26/12/2006, 22h59
  4. [Upload] Pb PHP et Debian d'upload
    Par clementphp dans le forum Langage
    Réponses: 4
    Dernier message: 16/08/2006, 21h49
  5. [Upload] Code php, besoin d'aide
    Par tilou dans le forum Langage
    Réponses: 3
    Dernier message: 08/02/2006, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo