2017-01-10 35 views
0

J'essaie de gérer le fichier de la demande Ajax prototype.js, mais son ne fonctionne pas. Les données ne sont pas dans le contrôleur ($ _FILES).Télécharger/gérer le fichier à partir de la requête Ajax dans Prototype js

J'ai ajouté une étape dans Checkout dans magento et je veux télécharger le fichier pour passer à l'étape suivante.

J'ai également essayer avec le code ci-dessous.

var request = new Ajax.Request(
       this.saveUrl, 
       { 
        method: 'post', 
        requestHeaders: {"X-Prototype-Version": null}, 
        contentType: 'multipart/form-data', 
        onComplete: this.onComplete, 
        onSuccess: this.onSave, 
        onFailure: checkout.ajaxFailure.bind(checkout), 
        postBody: formData, 
       } 
      ); 

Aidez-moi s'il vous plaît ici.

Répondre

0

Nous sommes désolés de vous le dire, mais les ajouts de fichiers ne seront pas si simples avec ajax. Lors de la publication via ajax, les champs de saisie de fichier sont ignorés ou vous ne recevez que le nom de fichier (au lieu des données de fichier).

Il existe cependant un moyen d'envoyer les données binaires - mais cela nécessite une approche différente. En utilisant l'API HTML5 File/FileReader, vous pouvez lire le fichier en javascript, puis mettre le contenu du fichier dans le corps de votre requête. Vous aurez besoin de mettre les champs de formulaire dans les paramètres GET afin qu'ils soient transmis à votre script PHP.

Dans votre script PHP le contenu du fichier sera disponible comme celui-ci

$file = file_get_contents('php://input'); 

$file contiendra le contenu de votre fichier téléchargé et vous pouvez l'écrire à votre système de fichiers ou lire le contenu, etc.