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 également le fichier. Comment puis je faire ça?
la source
POST
? Et quoiPUT
?String
toujours. Pourquoi ne correspond-il pas à mon DTO?@PostMapping ( value = "/byImageFile", consumes = { "multipart/form-data" }) public ResponseEntity<?> postMap( @RequestPart ( "imageFile") MultipartFile imageFile, @RequestPart ( "fieldsToExtract") RequestDto requestDto )
Je ne suis pas en mesure d'envoyer la demande du facteur du tout dans ce casRequestDto
automatiquement. Je l'ai pris comme une chaîne, analysé leJson
et mappéRequestDto
explicitement.Le guide visuel manquant
Vous devez d' abord trouver la liste déroulante presque invisible gris pâle sur blanc pour
File
laquelle se trouve la clé magique qui déverrouille leChoose Files
bouton.Après avoir choisi
POST
, puis choisiBody->form-data
, puis recherchez la liste déroulante Fichier, puis choisissez `` Fichier '', alors seulement le bouton `` Choisir les fichiers '' apparaîtra comme par magie:la source
Peut-être que vous pourriez le faire de cette façon:
la source
Comme ça :
Corps -> form-data -> sélectionner le fichier
Vous devez écrire "fichier" au lieu de "nom"
Vous pouvez également envoyer des données JSON à partir de Body -> champ brut. (Collez simplement la chaîne JSON)
la source
la source
Si vous avez besoin de télécharger un fichier en plusieurs parties à l' aide de données de formulaire et d'envoyer des données json (objet Dto) dans la même demande POST
Obtenez votre objet JSON en tant que chaîne dans Controller et faites-le désérialiser en ajoutant cette ligne
la source
Sélectionnez [Content Type] dans [SHOW COLUMNS] puis définissez le type de contenu de "application / json" sur le paramètre de texte json.
la source
Si quelqu'un avait besoin:
body -> form-data
Ajouter le nom du champ en tant que tableau
la source
Si quelqu'un veut envoyer des données json au format form-data, il suffit de déclarer les variables comme ceci
Facteur:
Comme vous le voyez, le paramètre de description sera au format json de base, résultat de cela:
la source
J'avais besoin de passer les deux: un fichier et un entier. Je l'ai fait de cette façon:
nécessaire pour transmettre un fichier à télécharger: l'avez-vous fait selon la réponse de Sumit.
Type de demande: POST
Corps -> form-data
sous la rubrique KEY , saisissez le nom de la variable ('file' 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 le titre VALUE , «Sélectionner les fichiers» est apparu. Cliquez dessus qui a ouvert une fenêtre pour sélectionner le fichier.
2. nécessaire pour passer un entier:
est allé à:
Paramètres
entré le nom de la variable (ex: id) sous KEY et sa valeur (ex: 1) sous VALUE
dans le backend:
Travaillé!
la source
Utilisez le code ci-dessous dans le côté du repose-ressort:
la source
Pour chaque clé de données de formulaire que vous pouvez définir Content-Type, il y a un bouton Postman sur la droite pour ajouter la colonne Content-Type, et vous n'avez pas à analyser un json à partir d'une chaîne à l'intérieur de votre Controller.
la source
Si vous voulez faire une
PUT
demande, faites tout simplement comme unePOST
demande mais ajoutez_method
=>PUT
à vosform-data
paramètres.la source
La façon d'envoyer des données multi-parties contenant un fichier avec les données json est la suivante, nous devons définir le type de contenu des champs clés json respectifs sur `` application / json '' dans l'onglet corps du facteur comme suit:
Cette image de lien vous expliquera comment envoyer l'image avec des données json
la source
Si vous utilisez des cookies pour garder la session, vous pouvez utiliser l' intercepteur pour partager des cookies du navigateur au facteur.
Aussi pour télécharger un fichier, vous pouvez utiliser l'onglet de données de formulaire sous l'onglet corps du facteur, dans lequel vous pouvez fournir des données au format clé-valeur et pour chaque clé, vous pouvez sélectionner le type de texte / fichier de valeur. lorsque vous sélectionnez l'option de type de fichier est apparue pour télécharger le fichier.
la source
entrez la description de l'image ici
contrôleur de repos [classe de service classe d'initialisation d' application pour la configuration en plusieurs parties [photo du facteur] 2 fig
la source