Solon 的Mvc可以直接返回 DownloadedFile 或者 File 对象
@Mapping("/demo/down")
@Controller
public class DownController {
@Mapping("f1")
public DownloadedFile down() {
InputStream stream = new ByteArrayInputStream("{code:1}".getBytes(StandardCharsets.UTF_8));
//使用 InputStream 实例化
return new DownloadedFile("text/json", stream, "test.json");
}
@Mapping("f2")
public DownloadedFile down12() {
byte[] bytes = "test".getBytes(StandardCharsets.UTF_8);
//使用 byte[] 实例化
return new DownloadedFile("text/json", bytes, "test.txt");
}
@Mapping("f3")
public File down2() {
String filePath = Utils.getResource("static/debug.htm").getFile();
return new File(filePath);
}
}
还可以通过 Context 对象的 outputAsFile 接口,直接输出下载文件