Подтвердить что ты не робот

Как загрузить файл и данные json в почтальоне

Я использую Spring MVC, и это мой метод:

/** 
* 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; 
        } 
    } 
} 

Мне нужно передать идентификатор сеанса в почтальоне, а также файл. Как я могу это сделать?

4b9b3361

Ответ 1

В postman установите тип метода POST.

Затем выберите Body → form-data → Введите имя параметра ( файл в соответствии с вашим кодом)

а в правой части рядом со столбцом значения будет выпадающий текст, файл, выберите Файл. выберите файл изображения и опубликуйте его.

Для остальных "текстовых" параметров вы можете публиковать их, как обычно, с почтальоном. Просто введите имя параметра и выберите "текст" в раскрывающемся меню правой стороны и введите любое значение для него, нажмите кнопку отправки. Ваш метод контроллера должен быть вызван.

Ответ 2

Возможно, вы могли бы сделать это следующим образом:

postman_file_upload_with_json

Ответ 3

Сначала вы должны найти почти невидимый выпадающий список бледно-серого на белом для File, который является волшебным ключом, который разблокирует кнопку Choose Files.

Недостающее визуальное руководство:

После того, как вы выберите POST, затем выберите Body->form-data, найдите выпадающий список "Файл" и затем выберите "Файл", только тогда волшебным образом появится кнопка "Выбрать файлы":

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

Ответ 4

Как это:

enter image description here

Body → form-data → выбрать файл

Вы должны написать "файл" вместо "name"

Также вы можете отправлять данные JSON из Body → raw field. (Просто вставьте строку JSON)

Ответ 5

  • Не указывайте заголовки.
  • Поместите ваши данные json в файл .json.
  • Выберите оба файла, один из которых - ваш .txt файл, а другой - файл .json. для ваших ключей запроса.

Ответ 6

Если кому-то нужно:

тело → форма-данные

Добавить имя поля как массив

enter image description here

Ответ 7

Если вам нужно, как Загрузка файла в многоголосных, используя данные формы и отправки данных JSON (объект Dto) в одном запросе POST

Получите ваш объект JSON как String в Controller и сделайте его десериализованным, добавив эту строку

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

Ответ 8

Postman multipart form-data content-type

Выберите [Content Type] из [SHOW COLUMNS], затем установите тип контента "application/json" для параметра текста json.

Ответ 9

Если кто-то хочет отправить данные json в формате формы данных, просто нужно объявить такие переменные, как это

Почтальон:

e6d3Q.png

Как видите, параметр описания будет в базовом формате json, в результате чего:

{ description: { spanish: 'hola', english: 'hello' } }

Ответ 10

Мне нужно было передать оба: файл и целое число. Я сделал это так:

  1. Нужно было передать файл для загрузки: сделал это согласно ответу Сумита.

    Тип запроса: POST

    Телоформа-данные

    под заголовком KEY введите имя переменной ('file' в моем бэкэнд-коде).

    в бэкэнде:

    file = request.files['file']

    Рядом с "файл", есть раскрывающийся список, который позволяет вам выбрать между "Файл" или "Текст". Выберите "Файл" и под заголовком " ЗНАЧЕНИЕ " появилось "Выбрать файлы". Нажмите на это, что открыло окно, чтобы выбрать файл.

2. необходимо передать целое число:

пошел в:

Params

введенное имя переменной (например, id) в KEY и ее значение (например: 1) в VALUE

в бэкэнде:

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

Работает!

Ответ 11

Если вы используете файлы cookie для сохранения сеанса, вы можете использовать перехватчик для совместного использования файлов cookie от браузера до почтальона.

Кроме того, чтобы загрузить файл, вы можете использовать вкладку "данные формы" на вкладке "Тело" на почтовом ящике, в которой вы можете предоставить данные в формате ключа и для каждого ключа вы можете выбрать тип текста/файла значения. когда вы выберете вариант типа файла, чтобы загрузить файл.

Ответ 12

Если вы хотите сделать запрос PUT, просто сделайте все как запрос POST но добавьте _method => PUT в свои параметры form-data.