首页 > 其他分享 >SSH框架之上传图片到项目文件夹下并在前端显示

SSH框架之上传图片到项目文件夹下并在前端显示

时间:2022-12-14 17:00:51浏览次数:52  
标签:String 前端 upload 文件夹 SSH file new message 图片


SSH框架之上传图片到项目文件夹下并在前端显示

1.前端jsp页面上传代码

<form action="sendMessage.action"  method="post" enctype="multipart/form-data">
<label>类别</label>
<select name="category">
<option value="1">书籍</option>
<option value="2">服饰</option>
<option value="3">证件</option>
<option value="4">其他</option>
</select><br>
<label>描述</label>
<input type="text" name="content"><br>
<label>图片</label>
<input type="file" name="upload"><br>
<input type="submit" value="发布">
</form>

2.后台action将上传的图片保存,将保存的图片路径存入数据库

public String send() {
//保存图片,返回路径
String path=messageService.savePhoto(upload);
User user=(User) ActionContext.getContext().getSession().get("user");
Message message=new Message();
message.setMessageUserid(user.getUserId()+"");
message.setMessagePhoto("images/"+path);
message.setMessageCategotyid(1);
message.setMessageDescription(content);
message.setMessageDate(new Date());
//存入数据库
messageService.saveMessage(message);
return "success";
}

3.保存图片的方法

public String savePhoto(File upload) {
// TODO Auto-generated method stub
//生成随机字符串
String sources="2549hgtflkjadsf89nbvcMNBVCxZwe5989iuytFFJHGfDASwERtrty";
Random random=new Random();
StringBuilder stringBuilder=new StringBuilder();
for(int i=0;i<5;i++) {
stringBuilder.append(sources.charAt(random.nextInt(sources.length()))+"");
}
String str=stringBuilder.toString();

String path="D:\\JavaWeb\\eclipse\\workspace\\lostandfoundSSH3\\WebContent\\images\\"+str+".jpg";

//2.保存照片
File file=new File(path);
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
return "0";
}
}
if(upload==null) {
System.out.println("upload is null");
}
if(!file.exists()) {
System.out.println("file is null");
}
try{
FileUtils.copyFile(upload,file);
}catch (IOException e){
e.printStackTrace();
return "0";
}
return str+".jpg";
}

4.通过查询数据库获取图片路径,将路径传给前端,显示图片

<c:forEach var="post" items="${postList}">
<div>
<img class="avatar" alt="头像" src="images/myLove.jpg">
<label><c:out value="${post.getUser().getUserName()}" /></label><br>
</div>

<div class="content">
<a href="#"><c:out value="${post.getMessageDescription()}" /></a>
</div>
<div>
<img class="content-img" alt="img-content" src="${ post.getMessagePhoto()}">
</div>
<div >
<a href="#"><img class="comment-img" alt="comment" src="images/comment.png"></a>

</div>
<div class="date">
<c:out value="${post.getMessageDate()}" /><br>
</div>
<div class="div"></div>
</c:forEach>

5.因为图片存储在项目文件下,当上传图片成功后,即使刷新页面前端也不能显示图片,需要刷新一下项目文件,再次刷新web页面才能显示图片


标签:String,前端,upload,文件夹,SSH,file,new,message,图片
From: https://blog.51cto.com/u_15912510/5937850

相关文章

  • 【校招VIP】线上实习 推电影 电影详情模块 前端文档周最佳
    【推电影】主要是为校招设计的年青人电影推荐平台项目,每个模块都具有亮点和难点,项目表现为手机网站应用,可嵌入小程序或APP中。恭喜来自仲恺农业工程学院的小陈同学获得本......
  • 宏/VBA批量将文件夹下的csv文件转换成xlsx
    https://blog.csdn.net/weixin_43046974/article/details/120876697宏/VBA批量将文件夹下的csv文件转换成xlsx Subchange_CSV_to_XLSX() ChDir"C:\Users\Administrat......
  • 巨蟒python全栈开发数据库前端5:JavaScript1
     1.js介绍&变量&基础数据类型2.类型查询&运算符&if判断&for循环3.while循环&三元运算符4.函数5.今日总结 1.js介绍&变量&基础数据类型js介绍(1)什么是JavaScript&一些历史......
  • Mac配置gitlab ssh密钥方法
    在有了gitlab账号后:1.在终端(根目录就行)输入ssh-keygen-trsa-C+gitlab上的email。  2.回车之后会让你输入存储id_rsa和id_rsa.pub的目录,不用管直接继续回......
  • 微前端落地实施及部署
    背景改造前的项目技术栈是Vue全家桶(vue2.6.10+element2.12.0+webpack4.40.2+vue-cli4.5.7),用到了动态菜单、菜单权限等,路由使用history模式,所以本篇介绍的都是关于Vue接......
  • 前端常见内存泄漏及解决方法
    写在前面:在平时写代码时,内存泄漏的情况会时有发生,虽然js有内存回收机制,但在平时编程中还是需要注意避免内存泄漏的情况;前几天做移动端时遇到一个内存泄漏造成移动端页面卡......
  • 前端跨域
    1.jsonp实现跨域 1<script>2varscript=document.createElement('script');3script.type='text/javascript';45//传参并指定回调执行函数为(&callb......
  • 社招前端二面react面试题集锦
    在哪个生命周期中你会发出Ajax请求?为什么?Ajax请求应该写在组件创建期的第五个阶段,即componentDidMount生命周期方法中。原因如下。在创建期的其他阶段,组件尚未渲染完成......
  • IDEA 项目目录如何显示target、idea文件夹
    网上的解决方法大致有两种,如下:方案一勾选ShowExcludedFiles 方案二找到需要显示的文件夹并将它删除,下图以target文件夹为例打开Settings-》Editor-》FileT......
  • 我们是否对现代前端开发框架过于崇拜了?
      前端界有两个“教派”,一个叫Vue,一个叫React。Vue的成员看不起React,React成员鄙视Vue,他们认为手中的“教义”就是真理,可以消灭世界一切苦难。但正如没有绝对的......