Muat naik fail (Muat naik)


Modul WebMVC sangat mudah untuk pemprosesan muat naik fail dan operasi fail yang dimuat naik. Ia boleh dilakukan dengan mudah melalui anotasi:

  • @FileUpload: mengisytiharkan bahawa kaedah pengawal perlu memproses aliran fail yang dimuat naik

    Tiada parameter , Apa yang perlu diberi perhatian ialah atribut bentuk enctype untuk pemprosesan muat naik fail:

      <form action="/demo/upload" method="POST" enctype="multipart/form-data">
      ......
      </form>
  • IUploadFileWrapper: Muat naik antara muka pembungkus fail, menyediakan satu siri kaedah untuk mengendalikan fail yang dimuat naik

  • : kod yang dimuat naik;

@Controller
@RequestMapping("/demo)
public class UploadController {

    // 处理单文件上传
    @RequestMapping(value = "/upload", method = Type.HttpMethod.POST)
    @FileUpload
    public IView doUpload(@RequestParam
                          IUploadFileWrapper file) throws Exception {
        // 获取文件名称
        file.getName();

        // 获取文件大小
        file.getSize();

        // 获取完整的文件名及路径
        file.getPath();

        // 获取文件Content-Type
        file.getContentType();

        // 转移文件
        file.transferTo(new File("/temp", file.getName()));

        // 保存文件
        file.writeTo(new File("/temp", file.getName());

        // 删除文件
        file.delete();

        // 获取文件输入流对象
        file.getInputStream();

        // 获取文件输出流对象
        file.getOutputStream();

        return View.nullView();
    }

    // 处理多文件上传
    @RequestMapping(value = "/uploads", method = Type.HttpMethod.POST)
    @FileUpload
    public IView doUpload(@RequestParam
                          IUploadFileWrapper[] files) throws Exception {

        // ......

        return View.nullView();
    }
}
Parameter konfigurasi berkaitan muat naik fail:

#-------------------------------------
# 文件上传配置参数
#-------------------------------------

# 文件上传临时目录,为空则默认使用:System.getProperty("java.io.tmpdir")
ymp.configs.webmvc.upload_temp_dir=

# 上传文件大小最大值(字节),默认值:-1(注:10485760 = 10M)
ymp.configs.webmvc.upload_file_size_max=

# 上传文件总量大小最大值(字节), 默认值:-1(注:10485760 = 10M)
ymp.configs.webmvc.upload_total_size_max=

# 内存缓冲区的大小,默认值: 10240字节(=10K),即如果文件大于10K,将使用临时文件缓存上传文件
ymp.configs.webmvc.upload_size_threshold=

# 文件上传状态监听器,可选参数,默认值为空
ymp.configs.webmvc.upload_file_listener_class=
Pendengar status muat naik fail (upload_file_listener_class) konfigurasi:

Muat naik fail berdasarkan modul Apache VC. disediakan dengan sendirinya Antara muka ProgressListener boleh digunakan untuk memantau status muat naik fail; webmvc.upload_file_listener_class parameter ;

Dapatkan nilai kemajuan dalam sesi melalui kaedah round-robin bermasa Ajax dan paparkannya pada halaman;