весенняя загрузка загружать zip файлы медленно - PullRequest
0 голосов
/ 28 апреля 2018

Я использую загрузочные файлы Spring при загрузке на сервер. Я обнаружил что-то странное. Когда я загружаю Jpg-файл с 4,88 МБ, это занимает 8,47 с, но с 3,16 М zip-файлом, это занимает около 1,3 мин. Учитывая, что этот сжатый файл содержит более 900 небольших файлов. Я изменил другой zip-файл, содержащий 10 небольших файлов. Теперь для передачи данных требуется 33,96 с, даже если этот новый Zip-файл имеет размер 6,52 М, он больше, чем старый.

Так влияет ли количество файлов в zip-файле на скорость загрузки? Если так, то почему?

application.yml:

spring:
  http:
    multipart:
      enabled: true
      max-file-size: 20MB

Java:

@RequestMapping("/changeMainAttachment")
@ResponseBody
public Object addChangeMainAttachment(@RequestParam("changeMainAttachment[]") MultipartFile[] files){
    String fileSavePath = gunsProperties.getFileUploadPath();
    for (MultipartFile multipartFile : files) {
        String fileName = UUID.randomUUID() + "#_#_#" + multipartFile.getOriginalFilename();
        try {

            logger.info("file uploaded to: " + fileSavePath + fileName);
            multipartFile.transferTo(new File(fileSavePath + fileName));
        } catch (Exception e) {
            throw new BussinessException(BizExceptionEnum.UPLOAD_ERROR);
        }

    }
    return new Msg();   

}

На лицевой стороне я использую Bootstrap File-input

ЯШ:

initFileInput: function(select,_url,_showZone,_async,befordUpload,afterUploaded){
        var i = $(select).fileinput({
            theme: "gly",
            uploadUrl: _url,
            dropZoneEnabled: _showZone,
            uploadAsync: _async,
            showUpload: true,
            showUploadedThumbs: true,
            maxFileSize: 20*1024,
            maxFileCount: 5, 
            msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
            hideThumbnailContent: true // hide image, pdf, text or other content in the thumbnail preview
        });
        if(befordUpload && typeof befordUpload == 'function'){
            i.on('filebatchpreupload',befordUpload);
        }
        if(afterUploaded && typeof afterUploaded == 'function'){
            i.on('filebatchuploadcomplete',afterUploaded);
        }


    }

Я вызываю этот метод следующим образом

ChangeAdd.initFileInput("#changeMainAttachment", /change/changeMainAttachment", true, true, ChangeAdd.fileBeforeUpload, ChangeAdd.fileAfterUploaded);
...