如何在jsp与action上实现,点击下载按钮 根据传输过来的文件路径 实现浏览器文件下载功能
时间: 2023-04-06 21:03:09 浏览: 134
可以在jsp页面上添加一个下载按钮,然后在对应的action中处理下载请求。在action中,可以通过传输过来的文件路径,读取文件并将其写入response的输出流中,设置response的Content-Disposition头部信息,使浏览器能够识别并下载该文件。具体实现可以参考以下代码:
```java
// 在jsp页面上添加一个下载按钮,设置下载链接为对应的action
<a href="downloadAction?filePath=/path/to/file">下载文件</a>
// 在对应的action中处理下载请求
public class DownloadAction extends ActionSupport {
private String filePath;
// 处理下载请求
public String execute() throws Exception {
File file = new File(filePath);
if (!file.exists()) {
return ERROR;
}
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/octet-stream");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment;filename=" + file.getName());
FileInputStream fis = new FileInputStream(file);
OutputStream os = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.flush();
os.close();
fis.close();
return NONE;
}
// getter和setter方法
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
}
```
阅读全文