commons-fileupload 上传图片路径到mysql_上传图片到服务器并将图片路径保存到数据库...
首先需要准备两个包:commons-io-2.2.jar和commons-fileupload-1.3.3.jar
doPost:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//判断上传的表单是否为multipart/form-data类型
HttpSession session = request.getSession();
User user = (User)session.getAttribute("user"); //在登录时将User对象放入会话。
if(ServletFileUpload.isMultipartContent(request)) {
try{
//1.创建DiskFileItemFactory对象,设置缓冲区大小和临时文件
DiskFileItemFactory factory = new DiskFileItemFactory();
//2.创建ServletFileUpload对象,并设置上传文件大小限制
ServletFileUpload sfu = new ServletFileUpload(factory);
sfu.setFileSizeMax(10*1024*1024); //以byte为单位,不能超过10M
sfu.setHeaderEncoding("utf-8");
//3.调用ServletFileUpload.parseRequest方法解析request对象,得到一个保存了所有上传内容的List对象
@SuppressWarnings("unchecked")
List fileItemList = sfu.parseRequest(request);
Iterator fileItems = fileItemList.iterator();
//遍历list,没迭代一个FileItem对象,调用其isFormField方法判断是否上传文件
while(fileItems.hasNext()) {
FileItem fileItem = fileItems.next();
//普通表单元素
if(fileItem.isFormField()){
String name = fileItem.getFieldName();//name属性值
String value = fileItem.getString("utf-8");
System.out.println(name + "=" + value);
}else {
String fileName = fileItem.getName();//文件名称
System.out.println("原文件名:" +fileName);//.jpg
String suffix = fileName.substring(fileName.lastIndexOf('.'));
System.out.println("扩展名:" +suffix);
//新文件名(唯一)
String newFileName = new Date().getTime() +suffix;
System.out.println("新文件名:" + newFileName);
//5.调用FileItem的write()方法写入文件
File file = new File("E:/workspae1/pets/WebContent/images/" + newFileName);
System.out.println(file.getAbsolutePath());
try {
fileItem.write(file);
//6.调用FileItem的delete()方法,删除临时文件
fileItem.delete();
/*
* 存储数据库
*/
UserImage userImage = new UserImage();
if(user != null){
String username = user.getUsername();
userImage.updateimage("images/" + newFileName,username);
session.setAttribute("image_name", fileName);
session.setAttribute("image_path", newFileName);
}
response.sendRedirect(request.getContextPath()+"/perinfo.jsp");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}catch(FileUploadException e){
e.printStackTrace();
}
}
userImage.java中有个方法updateimage(String,String)。
我连接数据库的方式是用的mybatis,updateimage(String,String)方法实现了根据用户名更改图片路径。
html:
注意表单中必须加enctype="multipart/form-data"。
以上的方式可以实现图片上传到服务器,路径到数据库。每次上传需手动刷新数据库和webContent文件才能够显示出来。所以也就成了一个弊端,目前还在找解决办法。
commons-fileupload 上传图片路径到mysql_上传图片到服务器并将图片路径保存到数据库...相关推荐
- SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库
@RequestMapping("upload") public void upload(@RequestParam(value = "file", requi ...
- uniapp上传图片压缩并转base64码、base64转图片路径
文章目录 一.上传图片压缩再转base64码 1.选择图片 [官方api](https://uniapp.dcloud.net.cn/api/media/image?id=chooseimage) 2 ...
- php图片保存在mysql_php实现上传图片保存到数据库的方法
php实现上传图片保存到数据库的方法.分享给大家供大家参考.具体分析如下: php 上传图片,一般都使用move_uploaded_file方法保存在服务器上.但如果一个网站有多台服务器,就需要把图片 ...
- php实现上传图片保存到数据库的方法
http://www.jb51.net/article/61034.htm 作者:傲雪星枫 字体:[增加 减小] 类型:转载 这篇文章主要介绍了php实现上传图片保存到数据库的方法,可通过将图片保存在 ...
- 数据库存储图片路径并显示到前端
数据库存储图片路径并显示到前端 -为啥不直接存图片:因为图片本身太大了,虽然存取方便了程序员,但对数据库不友好.所以采取存取路径,再根据路径解析的方法. 一.数据库表设计: 从以上思想出发,需要存图片 ...
- vue组件读取static文件夹内json文件的图片路径问题
static是放置静态文件的地方,可以我们也会把json文件放在里面,但是经常我们会遇到读取josn文件内图片路径的问题,这个问题困了我两天,今天一大早就又开始研究这个问题,现在终于得到了解决,关于这 ...
- 解决华为手机获取相册图片路径为null
最近代码君遇到一个问题,在其他手机调用系统相册获取图片路径都是可以的,但是华为手机,执行相同代码,会报空指针异常,网上找了很多资料,都没什么实用的效果 Intent intent; intent = ...
- android华为获取相册,解决华为手机获取相册图片路径为null
最近代码君遇到一个问题,在其他手机调用系统相册获取图片路径都是可以的,但是华为手机,执行相同代码,会报空指针异常,网上找了很多资料,都没什么实用的效果 Intent intent; intent = ...
- 织梦模板文章的图片路径问题
1.pc端和移动端的公用一个模板后台时,移动端的网站是放在pc端的文件夹下面:这个时候的图片的路径是相对路径,需要修改成绝对路径,不然移动端找不到图片路径 方法: 打开织梦后台--->文件式管理 ...
最新文章
- Qt Creator连接iOS设备
- modbus 台达a2_驱控智造未来 台达重磅发布多款工业自动化新品
- 解决Ssh/Scp报错:Someone Could Be Eavesdropping On You Right Now (Man-In-The-Middle Attack)!
- ES6学习(六)—函数的扩展
- 信号与槽是如何实现的_铺天盖地的吐槽,结果却是卖到断货?iPhone12魅力何在?...
- 9月8日全球域名商(国际域名)解析新增量TOP20
- python pdf转html代码_Python3转换html到pdf的不同解决方案
- 5.2.8.字符设备驱动代码实践1
- Jasperreports TextField自动换行
- jfreeChart生成报表
- php 执行bat文件,bat执行PHP文件
- Win10文件无法重命名
- Radware深度解读肆虐全球的WannaCry勒索攻击
- 初中计算机实践研究计划,初中信息技术教研工作计划
- linux认证考试内容,Linux认证考试RHCE大纲
- ubuntu20.04启动时黑屏
- Ubuntu只读文件系统修复方法
- Python扩展包:Unofficial Windows Binaries for Python Extension Packages
- (软件工程视频总结)之软件测试
- 根据字符出现的频次排序
热门文章
- 实验2-2-8 阶梯电价 (15 分)
- PTA—考试座位号(C语言)
- opencv之图像边界填充-- copyMakeBorder
- 如何解决json中携带的反斜杠_【经验分享】python干货:5种反扒机制的解决方法...
- 电影推荐系统 python简书_分析9000部电影|一个简单的电影推荐系统
- 为什么中台是传统企业数字化转型的关键?
- 【笔记】jquery判断两个日期之间相差多少天
- style, currentStyle, getComputedStyle的区别
- Redis实现微博后台业务逻辑系列(八)
- 【git】git提交忽略不必要的文件或文件夹