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?
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.
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:
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);
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' } }
Je devais passer les deux: un fichier et un entier. Je l'ai fait comme ça:
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é!
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.
Si vous voulez faire une demande PUT
, faites tout comme une demande POST
mais ajoutez _method
=> PUT
à vos paramètres form-data
.