0
votes

Comment télécharger un fichier à l'aide d'une récupération

Je sais que cela a été demandé auparavant, mais aucune des solutions ne fonctionne pour moi. J'ai d'abord essayé de résoudre ce problème en utilisant axios code>, mais en lisant dessus, il semble y avoir un bug qui ne me permettra pas de l'utiliser pour le téléchargement de fichiers. Donc, je suis coincé avec Fetch code>.

Ceci est ma fonction de téléchargement: p> xxx pré>

Voici comment je l'appelle: p>

router.route("/add").post((req, res) => {
    req.on("data", function(data) {
        console.log("got data: " + data.length);
        console.log("the Data: ?" )
        // let t = new Test(data);
        // t.save()
        //     .then(res => console.log(res))
    })

    req.on("end", function(d) {
        console.log("ending!");
    })

    req.on("error", function(e){
        console.log("ERROR: " + e);
    })
});


5 commentaires

axios fonctionne bien, vous pouvez l'essayer si vous voulez


Stackoverflow.com/a/36082038/3110695


Je veux dire, c'est fondamentalement ce que je vais bien?


Pouvez-vous mettre à jour le statut? @Zorobay


D'accord, je pense donc que je pourrais réellement recevoir des données, mais je ne le traite pas correctement sur mon backend!


3 Réponses :


0
votes

Vous devez utiliser formdata avec 'Type de contenu': 'Application / x-www-form-urlencoded' comme obtention d'en-tête.


4 commentaires

J'ai lu plus d'une fois que je suis censé omettre des en-têtes ... mais je vais essayer cela ... encore. Modifier: Yup, toujours le même résultat: /


Mais dans votre code, je ne peux pas voir l'utilisation de formdata n'importe où.


J'ai mis à jour avec ma fonction complète. J'ai essayé d'utiliser les deux formdata et plan comme argument.


Voulez-vous essayer «Type de contenu»: «Multipart / Form-Data»?



0
votes

Je veux que vous essayiez une approche simple. Au lieu d'ajouter le fichier en formdata, créez une instance d'une forme réelle.

<form onSubmit={this.onStudyPlanUpload} encType="multipart/form-data" ref={el => this.form = el}>
 <input type="file" name="pdf" onChange={() => { this.form.dispatch(new Event('submit'))}/>
 <input type="hidden" name="comments" value="A really lit study plan!" />
 <input type="hidden" name="approved" value=true />
 <input type="hidden" name="uploaded_by" value="Name"/>
 <input type="hidden" name="date_uploaded" value="2012-02-1"/>
 <input type="hidden" name="university" value="australian_national_university"/>
</form> 


0 commentaires

0
votes

Je vais répondre à ma propre question. Si quelqu'un d'autre apparaît sur ce problème, c'est le backend qui est défectueux. Ceci est ma solution finale utilisant Busboy pour gérer les données de formulaire entrant. Je n'ai rien changé sur mon serveur, mais mon routeur devait être mis à jour. Voici mon routeur, en prenant soin des demandes postales: xxx

enfin, ma fonction finie ollétydyplanupload ()! xxx

a eu l'aide de: https://gist.github.com/shobhitg/5b367f01b6daf46A0287


0 commentaires