jquery 下载图片另存为

本文介绍了一种解决前端A标签无法将图片类型的附件另存为文件的问题的方法。通过使用表单提交的方式,配合后端Java代码处理,实现了图片附件的正确下载。此方案利用ImageIO将图片输出到页面,确保了用户可以正常保存图片附件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,场景:附件列表上传操作字段,有一个下载按钮,现在附件,当附件类型为图片时,A标签无法另存为。
2,解决办法,采用表单提交的方式,由后端java处理完,采用iamgeIo输出到页面。
前端代码
<e:form id="queryForm">
<input type="hidden" name="path" id="path" />
</e:form>

js
function downloadImg(imagePathURL){
$("#queryForm").attr("action","${request.getContextPath()}/ajaxUpload/downloadPic");
$("#queryForm").submit();
}

java代码
def downloadPic(){
String path = params.path;
String[] spUrl = path.toString().split("/");
int len = spUrl.length;
String endUrl = spUrl[len - 1];
int dot = endUrl.lastIndexOf('.');
String suffix = endUrl.substring(dot + 1, endUrl.length());

URL url = new URL(path);
BufferedImage img = ImageIO.read(url);

response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=".concat(String.valueOf(URLEncoder.encode(endUrl, "UTF-8"))));

OutputStream os = response.getOutputStream();

ImageIO.write(img,suffix,os);

os.close();
}


3,效果
[img]http://dl2.iteye.com/upload/attachment/0099/4279/e32123ef-bf55-36de-80e3-c22b82ca7952.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值