Solon

六、上传下载及外部静态资源

1、文件上传

public class DemoController{
    //文件上传
    @Post
    @Mapping("/upload")
    public String upload(UploadedFile file) {
        //file.transferTo(new File("/demo/user/logo.jpg")); 把它转为本地文件
        return file.name;
    }
    
    //通过 multipart 提交的数据,且不带 UploadedFile 参数;须加 multipart 申明
    @Post
    @Mapping(path="/upload1", multipart=true)
    public String upload(String user) {
        return user;
    }
    
    //通过 multipart 提交的数据,且不带 UploadedFile 参数;须加 multipart 申明
    @Post
    @Mapping(path="/upload2", multipart=true)
    public String upload(String user, Context ctx) {
        UploadedFile file = ctx.file("file");
        return file.name;
    }
}    

2、文件下载输出

public class DemoController{
    //文件下载
    @Get
    @Mapping("/down")
    public DownloadedFile down() {
        return new DownloadedFile("text/json",
                "{\"code\":1}".getBytes(StandardCharsets.UTF_8),
                "test.json");
    }
    
    //文件下载
    @Get
    @Mapping("/down2")
    public File down() {
        return new File("/demo/user/logo.jpg");
    }
}    

3、指定外部静态资源仓库

比如,把上传的文件放到 /demo/user/,同时把它做为静态资源仓库

参考插件:solon.web.staticfiles