html 下载文件传文件名
时间: 2023-07-25 15:25:59 浏览: 130
如果要在 HTML 中下载文件,并且要指定下载的文件名,可以通过设置 `Content-Disposition` 响应头来实现。在后台代码中,可以通过设置 `response.setHeader("Content-Disposition", "attachment;filename=" + fileName)` 来实现。
下面是一个完整的 HTML 下载文件并传递文件名的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>下载文件</title>
</head>
<body>
<a href="/download?fileName=myfile.pdf">下载文件</a>
</body>
</html>
```
在上面的代码中,我们通过给 `<a>` 标签设置 `href` 属性,并将文件名作为参数传递给后台代码。然后在后台代码中,获取文件名并设置 `Content-Disposition` 响应头,最终将文件内容输出到客户端。
下面是后台代码的示例:
```java
@RequestMapping(value = "/download", method = RequestMethod.GET)
public void downloadFile(HttpServletRequest request, HttpServletResponse response, @RequestParam String fileName) {
try {
// 获取要下载的文件路径
String filePath = "/path/to/" + fileName;
File file = new File(filePath);
InputStream inputStream = new FileInputStream(file);
// 设置文件下载相关的信息
response.setContentType("application/force-download");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
// 输出文件流
OutputStream outputStream = response.getOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
}
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
```
在上面的代码中,我们通过 `@RequestParam` 注解获取传递的文件名,并将其作为下载的文件名。然后设置 `Content-Disposition` 响应头,最终将文件内容输出到客户端。
阅读全文