好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

resty upload无需依赖的文件上传与下载

1. 文件上传

a. 看看@FIEL注解的属性

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

/**

  * 上传文件时使用该注解 设置文件相关参数

  */

@Retention (RetentionPolicy.RUNTIME)

@Target (ElementType.METHOD)

@Documented

public @interface FILE {

   String dir() default "" ; //文件上传的目录

   boolean overwrite() default false ; //遇到同名文件是否覆盖,适合客户端控制文件名

   Class<? extends FileRenamer> renamer() default DefaultFileRenamer. class ; //对文件名字进行重命名处理

   int max() default - 1 ; //上传的大小限制,默认最大10M

   String encoding() default "" ; //文件编码格式

   String[] allows() default {}; //file content type eg. text/xml 允许上传的文件类型

}

b. 在application.properties设置上传的默认值

?

1

2

3

4

5

app.uploadDirectory=/upload/

#单位为b 如10M= 1024 * 1024 * 10

app.uploadMaxSize= n

#拒绝上传的文件mime类型多个逗号分割

app.uploadDenieds=text/xml,text/csv

c. 在服务端使用@FILE注解来接收文件流数据

?

1

2

3

4

5

6

7

8

9

10

//上传文件

@POST

@FILE (dir= "文件上传目录" ,overwrite=同名是否覆盖<适合客户端控制文件名>,renamer=继承FileRenamer class 的对文件重命名的工具类 ,max=上传文件最大限制默认10m,encoding= "文件编码" ,allows={ "允许上传的文件类型如:text/xml" })

public UploadedFile upload(String filename, UploadedFile testfile, String des) {

     //注意UploadedFile  参数的名字 需要和input的name对应

     //如 <input type="file" name="x"> 用UploadedFile x来接收文件

     //如果上传多个文件,使用Map<String,UploadedFile> files来接收所有的文件,key为input的name x

     System.out.println(des);

     return testfile;

}

2. 文件下载

a. 直接通过return file来向客户端输出文件

?

1

2

3

4

5

//下载文件 支持断点续传

@GET

public File download() {

     return new File(getRequest().getRealPath( "/" ) + "upload/resty.jar" );

}

以上就是resty upload无需依赖的文件上传与下载的详细内容,更多关于resty upload无依赖文件上传下载的资料请关注其它相关文章!

原文链接:https://dreampie.gitbooks.io/resty-chs/content/file.html

查看更多关于resty upload无需依赖的文件上传与下载的详细内容...

  阅读:16次