Попытка загрузки фрагмента Filepond не настроена на выгрузку - PullRequest
0 голосов
/ 11 апреля 2020

Я использую Spring Boot в качестве серверной части для обработки загрузок с помощью FilePond. Если ошибок не возникает, загрузка чанка работает нормально со следующей конечной точкой PATCH:

** Code omitted for brevity **
File file = new File(PATH + "/" + patch + extension);
OutputStream out = new FileOutputStream(file, true);
try {
        //    if(file.length() > 600000 && !patched)
        //        return ResponseEntity.badRequest().body("Failed");
            out.write(input);
        } catch (Exception e){
            e.printStackTrace();
            return ResponseEntity.unprocessableEntity().body("Could not write file");
        }finally {
            out.close();
        }
        out.close();
** Code omitted for brevity **

Если я раскомментирую оператор if в блоке try, в конечном итоге произойдет ошибка, как я и тестирую Возможности повтора:

@RequestMapping(method = RequestMethod.HEAD)
    public ResponseEntity<String> resume(@RequestParam("patch") String fileName, HttpServletRequest req){
        File file = new File(PATH + "/" + fileName + ".jpg");
        patched = true;
        HttpHeaders header = new HttpHeaders();
        header.set("Upload-Offset", Long.toString(file.length()));
        return ResponseEntity.ok().headers(header).body("success");
    }

Как вы можете видеть, я отправляю ответ с заголовком «Upload-Offset» и длиной файла до сих пор (что является смещением, где нам нужно начинать заново). Я также пробовал это с заголовком HttpServletResponse с тем же результатом. Когда я повторяю загрузку, заголовок «Upload-Offset» начинается с нуля. Куски все еще проходят, и длина файла, кажется, увеличивается на основе оператора регистрации, который я пропустил. Однако окончательное изображение всегда заканчивается частично завершенным.

Почему заголовок смещения при загрузке не начинается там, где он должен (610000), и почему данные записываются в файл изображения, но не отображаются как данные изображения?

...