JSP完成添加商品时的图片上传
这里就写上简单的详细步骤,跟着步骤一块做就能够实现一个jsp文件上传的功能
1,首先是导入以下两个包
在额外导入这个包,主要用于封装数据
以上三个包点此下载
2,设置添加商品提交表单的form标签的属性
<form class="am-form am-form-horizontal" id="addmodform" method="post" enctype="multipart/form-data">
注意method必须为post
设置enctype="multipary/form-data"这个属性不能少,
设置图片上传的input标签
<input type="file" id="user-name2" name="productImg" >
3,接着点击提交按钮到自己设置好的servlet
在servlet中由于设置了上述的enctype此时requese域的getParameter等获取参数值的方法全部都会无效,
我们要用特殊的方法来判断是否是文件上传的表单来取input的值
接下来是servlet的代码,跟着一步一步写,你就能实现图片上传了,其中出现的异常全部抛出
public void addProduct(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException, FileUploadException, IllegalAccessException, InvocationTargetException {//封装表单数据到product实体中Product product = new Product();//收集数据的容器Map<String,Object> map = new HashMap<String, Object>();//创建磁盘工厂DiskFileItemFactory factory = new DiskFileItemFactory();//创建文件上传核心对象ServletFileUpload upload = new ServletFileUpload(factory);//解析request集合List<FileItem> parseRequest = upload.parseRequest(request);//遍历request集合for (FileItem fileItem : parseRequest) {//判断是普表单项还是文件表单项boolean formField = fileItem.isFormField();if(formField){//是普通表单项String fieldName = fileItem.getFieldName();//获取表单项名字,也就是平时getParameter的那个nameString stringValues = fileItem.getString("utf-8");//获取表单项的值,平时getParameter的那个name返回的值当然要编码map.put(fieldName, stringValues);//设置到map,取出一个name你就得将这个值添加到上面定义的map中,用于后面进行封装}else{//是文件上传的表单项//获取上传的文件名字String name = fileItem.getName();//设置保存路径,也就是你根路径底下的一个文件夹中String realPath = this.getServletContext().getRealPath("images");//获取输入流读取文件InputStream inputStream = fileItem.getInputStream();//创建输出流写入文件,路径/图片名字OutputStream outputStream = new FileOutputStream(realPath+"/"+name);//将文件写入到images中IOUtils.copy(inputStream, outputStream);//关流inputStream.close();outputStream.close();fileItem.delete();//根据对象保存路径~(相对路径),一般数据库中的图片字段都是相对路径.总之添加数据时根据你数据库图片字段的格式添加map.put("productImg", "images/"+name);}}//封装数据,相当于将表单提交的数据一个一个set进去.导入上述的beanutils包就能调用BeanUtils.populate(product, map);//将表单没有提交到的数据封装到实体中,这个根据你设置的字段来封装product.setProductSaleCount(0);//刚上架的商品销售量位0product.setProductState(0);//刚上架的商品状态为商品审核中设置为0product.setIsHot(0);//刚上架的商品状态默认不是热门商品设置为1product.setIsOpenStore(0);;//刚上架的商品状态店铺上下架状态为0//调用service的添加商品方法proService.addProduct(product);//重定向跳转到列表显示页面response.sendRedirect(request.getContextPath()+"/storeServlet?op=productmanage&storeid="+id);
其中涉及到的一个比较有意思的知识点fileitem对象,有兴趣的可以自己去了解.
JSP完成添加商品时的图片上传相关推荐
- 1688以图搜货接口,1688图片搜索接口,拍立淘接口,以图搜商品接口,图片上传搜索商品接口,按图搜索接口代码对接参数说明
一.接口说明: 有两种方式可以通过图片url地址请求获取到图片上的相似商品列表,然后再次拿到商品详情. 点击获取key和secret 方式一:可以用淘宝/1688平台外的图片进行先上传然后再搜索商品的 ...
- 激活时显示图片上传资源服务器失败,720全景图上传时提示“切图失败”的处理办法...
前段时间服务器被攻击,之前的网站都受到影响.全景系统也是如此,重新搞了之后总感觉不如之前的好用,早上在测试的时候,在后台上传素材,页面提示"切图失败",然后就卡在服务器处理页面不动 ...
- uniapp---------订单多商品评价及图片上传、删除功能
效果图如下: 前端代码如下: <template><view id="orderPj"><view class="Box" v-f ...
- [iOS]服务器使用php时多图片上传AFNetworking的设置
与java服务器不同 服务器使用php时 [formData appendPartWithFileData:UIImageJPEGRepresentation(_PhArray[i], 0.1f) n ...
- 【报错笔记】关于图片上传时的路径问题
在图片上传时将图片上传到本地磁盘后 如下将图片保存到了D盘下 因此在jsp页面中读取对应图片时,需要在tomcat中配置相关信息. 在jsp页面中图片路径src中使用虚拟路径加数据库中图片名称就可以将 ...
- html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
原文:html5 图片上传,支持图片预览.压缩.及进度显示,兼容IE6+及标准浏览器 以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一 ...
- jeefast使用Mybatis进行图片上传
在jeefast中找到配置虚拟目录的地方 看一下是否继承了WebMvcConfigurerAdapter 接口,如果继承的话就重写配置虚拟目录的方法 @Overridepublic void addR ...
- CKEditor4.7之使用实现图片上传功能
步骤 1.下载CKEditor4.7 官网下载CKEditor,基础包,标准包,全包选择其一.地址:https://ckeditor.com/ckeditor-4/download/ 2.将文件CKE ...
- CentOS7设置静态IP、搭建单机版FastDFS图片服务器、使用FastDFS-Client客户端进行简单测试、实现图片上传、实现商品添加修改删除
CentOS7设置静态IP.搭建单机版FastDFS图片服务器.使用FastDFS-Client客户端进行简单测试.实现图片上传.实现商品添加修改删除 CentOS7设置静态IP而且还可以上网 192 ...
- 淘淘商城第三天—完成商品添加功能 商品类目选择 图片上传 图片服务器搭建 kindEditor富文本编辑器的使用 商品添加功能
1.实现商品类目选择功能 1.1需求 在商品添加页面,点击"选择类目"显示商品类目列表: 请求初始化树形控件的url:/item/cat/list 1.2 EasyUI tree数 ...
最新文章
- 牛腩44 整合登陆页 RequiredFieldValidator 和 ValidationSummary 以及 asp.net 自带的MD5 加密...
- mysql 多行转换多列 列不确定_多行转多列,行数和列数不确定
- Linq 入门系列 [OfType,ToArray,ToList,ToDictionary]
- 把图片做成html,HTML5实践-图片设置成灰度图
- Flask 实战:如何从零开发“知乎”
- 8086条件转移指令JE,JZ
- 按季度分类汇总_2019年纯碱行业相关上市公司季报 与半年报情况汇总
- ubuntu下的linux怎样备份文件,Ubuntu系统如何备份还原?Ubuntu系统备份还原教程
- CentOS 下安装JDK
- [转载]百分之百自动登录2345王牌技术员联盟源代码(delphi)
- Jquery 取色器
- php代码加密工具xend,PHP代码加密工具 Xend v3.0.1
- Codeforces 853 A. Planning
- android测试类--Method setUp in android.test.AndroidTestCase not mocked
- Unity Android 接入高德定位SDK
- 免费linux脚本下载地址,shell脚本 下载|Linux shell脚本 v免费版下载 - D9下载站
- C++ opengl 漫反射和镜面反射参数
- apollo 高精地图解析
- NIST测试结果分析
- RAID 容量计算器