进入编辑页面,图片回显,图片下载
需求简介:做编辑功能的时候,进入页面,要回显以前上传过的图片
解决思路:点击编辑,后台查询需要编辑的信息(包含图片信息,其实就是图片的名字 xxx.jpg),然后把信息放到edit页面,进入编辑页面的时候,获取到该信息的图片名称,拼装下载路径,然后把该路径给img标签的src,页面加载src路径的图片时,就会进入到后台的下载方法,把图片从服务器上下载到本地,执行完后显示该图片。该方式是通过response那两行代码显示的,深入的不太懂,上代码
代码:
//js代码 获取后台穿过俩的plan对象,然后取得plan的图片名字plan.
<script type="text/javascript">
var plan = [[${plan}]];
if (CommnUtil.notNull(plan)) {
var planIcon = plan.planIcon;
if (CommnUtil.notNull(planIcon)) {
var imgPlanIcon = rootPath + 'serv/plan/downLoadImage?planIcon=' + planIcon;
//给src赋值,使得当图片加载的时候进入后台的下载方法,执行完得到完整的图片路径,再显示图片
$('#imgPlanIcon').attr('src', imgPlanIcon);
}
</script>
//后台java代码
@RequestMapping("downLoadImage")
public void downLoadFile(String planIcon, HttpServletResponse response) {
if (Tools.isEmpty(planIcon)) {
return;
}
File file = null;
file = new File(imagePath + File.separator + planIcon);
if (!file.exists()) {
file = new File(imageTempPath + File.separator + planIcon);
}
if (file.exists()) {
BufferedInputStream in = null;
BufferedOutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(file));
out = new BufferedOutputStream(response.getOutputStream());
// 设置response内容的类型 https://blog.csdn.net/saytime/article/details/51497529第二种方法
response.setContentType(new MimetypesFileTypeMap().getContentType(file));
// 设置头部信息 Content-disposition指定的类型必须是文件的扩展名
response.setHeader("Content-disposition", "attachment;filename=" + planIcon);
byte[] buffer = new byte[1024];
int length = 0;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
out.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
总结:其实流这一块儿挺薄弱的,一点一点的积累吧,另外,response我自己用到的真的不多,就是设置个编码集,或者获取write对象,也得总结总结
标签:
文件上传
, SpringBoot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)