web-dev-qa-db-fra.com

comment télécharger un fichier et des données json dans postman

J'utilise Spring MVC et voici ma méthode:

/** 
* Upload single file using Spring Controller 
*/ 
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST) 
public @ResponseBody ResponseEntity<GenericResponseVO<? extends IServiceVO>> uploadFileHandler(@RequestParam("name") String name, @RequestParam("file") MultipartFile file,HttpServletRequest request, HttpServletResponse response) { 
    if (!file.isEmpty()) { 
        try { 
            byte[] bytes = file.getBytes();     
            // Creating the directory to store file 
            String rootPath = System.getProperty("catalina.home"); 
            File dir = new File(rootPath + File.separator + "tmpFiles"); 
            if (!dir.exists()) 
                dir.mkdirs();     
            // Create the file on server 
            File serverFile = new File(dir.getAbsolutePath() + File.separator + name); 
            BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile)); 
            stream.write(bytes);
            stream.close(); 
            System.out.println("Server File Location=" + serverFile.getAbsolutePath());
            return null; 
        } catch (Exception e) { 
            return null; 
        } 
    } 
} 

Je dois passer l'identifiant de session dans postman et aussi le fichier. Comment puis je faire ça?

71
Harikrishnan K.N.

Dans postman, définissez le type de méthode sur POST.

Ensuite, sélectionnez Corps -> Données de formulaire -> Entrez votre nom de paramètre (fichier selon votre code).

et sur le côté droit à côté de la colonne de valeur, il y aura liste déroulante "texte, fichier", sélectionnez Fichier. choisissez votre fichier image et postez-le.

Pour le reste de paramètres "text", vous pouvez le poster comme vous le faites normalement avec postman. Entrez simplement le nom du paramètre et sélectionnez "texte" dans le menu déroulant de droite, puis entrez une valeur, appuyez sur le bouton Envoyer. Votre méthode de contrôleur devrait être appelée.

98
Sumit Badaya

Peut-être que vous pourriez le faire de cette façon:

postman_file_upload_with_json

39
gce

Vous devez d'abord trouver le menu déroulant presque invisible gris pâle sur blanc pour File qui est la touche magique qui déverrouille le bouton Choose Files.

Guide visuel

Après vous choisissez POST, puis choisissez Body->form-data, puis trouvez le menu déroulant Fichier et puis choisissez 'Fichier', seulement puis le bouton 'Choisir les fichiers' comme par magie apparaître:

Postman POST file setup - (Text,File) dropdown highlighted

31
Chris F Carroll

Comme ça :

enter image description here

Corps -> Données de formulaire -> Sélectionner un fichier

Vous devez écrire "fichier" au lieu de "nom"

Vous pouvez également envoyer des données JSON à partir de Body -> champ brut. (Il suffit de coller la chaîne JSON)

15
burakozgul
  1. Ne donnez aucun en-tête.
  2. Placez vos données json dans un fichier .json.
  3. Sélectionnez vos deux fichiers, l’un est votre fichier .txt et l’autre, le fichier .json pour vos clés de paramètre de demande.
8
Rohit Thakur

Si quelqu'un avait besoin de:

body -> données de formulaire

Ajouter un nom de champ en tant que tableau

enter image description here

5
Sebastiao Marcos

Si vous avez besoin de télécharger un fichier en en plusieurs parties en utilisant des données de formulaire et envoyez json données (objet Dto) dans la même demande POST

Obtenez votre objet JSON en tant que chaîne dans le contrôleur et désérialisez-le en ajoutant cette ligne.

ContactDto contactDto  = new ObjectMapper().readValue(yourJSONString, ContactDto.class);
5
Ajay k

Postman multipart form-data content-type

Sélectionnez [Type de contenu] dans [AFFICHER LES COLONNES], puis définissez le type de contenu de "application/json" sur le paramètre du texte json.

4
otamega

Si quelqu'un veut envoyer des données JSON au format formulaire-données, il suffit de déclarer les variables comme celle-ci.

Facteur:

Comme vous le voyez, le paramètre description sera au format JSON de base. Résultat:

{ description: { spanish: 'hola', english: 'hello' } }
4
Sebastian Ardila

Je devais passer les deux: un fichier et un entier. Je l'ai fait comme ça:

  1. besoin de passer un fichier à télécharger: l'a fait selon la réponse de Sumit.

    Type de demande: POST

    Corps -> données de formulaire

    sous la rubrique KEY, entrez le nom de la variable ('fichier' dans mon code backend).

    dans le backend:

    file = request.files['file']

    À côté de "fichier", il y a une liste déroulante qui vous permet de choisir entre "Fichier" ou "Texte". Choisissez 'Fichier' et sous l'en-tête VALEUR, 'Sélectionner les fichiers' est apparu. Cliqué sur ce qui ouvre une fenêtre pour sélectionner le fichier.

2. nécessaire pour passer un entier:

est allé à:

Params

nom de variable entré (par exemple: id) sous CLÉ et sa valeur (par exemple: 1) sous VALEUR

dans le backend:

id = request.args.get('id')

Travaillé!

1
vinci mojamdar

Si vous utilisez des cookies pour conserver la session, vous pouvez utiliser interceptor pour partager les cookies d'un navigateur à un facteur.

Également pour télécharger un fichier, vous pouvez utiliser l'onglet de données de formulaire sous l'onglet de corps sur postman, dans lequel vous pouvez fournir des données au format clé-valeur et pour chaque clé, vous pouvez sélectionner le type de valeur texte/fichier. lorsque vous sélectionnez l'option de type de fichier est apparu pour télécharger le fichier.

0
Sandesh Jain

Si vous voulez faire une demande PUT, faites tout comme une demande POST mais ajoutez _method => PUT à vos paramètres form-data.

0
kubilay