Почтальон Предварительный сценарий отправки нескольких частей fomdata - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь отправить файлы как составные данные форм в предварительном сценарии Почтальона:

function upload()
{
return  new Promise((resolve, reject) =>{
                                        pm.sendRequest({
                                                        url    : url_service,
                                                        method : httpPOST,
                                                        header : {"Content-Type": "multipart/form-data"},
                                                        body: {
                                                               "mode": "formdata",
                                                               "formdata": [
                                                                             {
                                                                              "key": "file[]",
                                                                              "value": fileContent,
                                                                              "type": "file"
                                                                             }
                                                                           ]
                                                               }
                                                              }, 
                                                              (e,r)=>
                                                              {
                                                                 if (e) 
                                                                 {
                                                                   console.log(e);
                                                                   reject(e);
                                                                 } 
                                                                 else 
                                                                 {
                                                                   console.log(r);
                                                                   resolve();
                                                                 }
                                                              });
                                           });
                                          }

На стороне сервера (Spring Boot) код, который анализирует запрос:

public ObjectNode parseRequestBody(ServletRequest request) throws Exception {
        HttpServletRequest req = (HttpServletRequest) request;
        String body = null;
        ObjectNode b = new ObjectNode(JsonNodeFactory.instance);
        String cert = req.getHeader(conf.getApacheCertField());

        if (this.mResolver.isMultipart(req)) {
            MultipartHttpServletRequest mreq = this.mResolver.resolveMultipart(req);
            List<MultipartFile> files = mreq.getFiles("file[]");
            ArrayNode f = mapper.createArrayNode();
            for (MultipartFile e : files) {
                ObjectNode n = this.mapper.createObjectNode();
                n.put("content", new String(Base64.getEncoder().encode(e.getBytes())));
                n.put("name", e.getOriginalFilename());
                n.put("mime", e.getContentType());
                n.put("extension", e.getOriginalFilename().substring(e.getOriginalFilename().lastIndexOf(".") + 1));
                f.add(n);
            }
            b.set("files", f);
        } else {
            body = this.readRequest(request);
            b = body.isEmpty() ? new ObjectNode(JsonNodeFactory.instance) : mapper.readValue(body, ObjectNode.class);
            if (cert != null)
                b.put(conf.getCertField(), cert);
        }
        return b;
    }

Когда внутренний код обрабатывает запрос, список файлов всегда пуст. Открытый код работает, когда запрос делает пользовательский интерфейс Angular 2. Можно ли сделать запрос multipart / formdata для загрузки файлов с использованием сценариев Postman?

Спасибо.

...