图片上传
来源:互联网 发布:抗皱护肤品知乎 编辑:程序博客网 时间:2024/06/08 09:51
项目要求:实现图片上传,一行四张图片。
实现方法:一个imglist存放已上传的图片src,一个defaultlist 循环默认图片,循环次数为 4-imglist.size();
点默认图片执行onclick(),弹出图片选择框,选择完图片 执行onchange() 方法,调用ajaxupload 方法
把图片file传递到后台action。
前段jsp页面:
<div class="container-fluid"> <c:forEach var="image" items="${imglist }" varStatus="idx"> <td> <img id="${image.id}" alt="${image.id}" width="120" height="120" src="<%=basePath%>${image.src}" onmouseover="showDeleteDiv('${image.id}');" onmouseout="imgOnmouseout(),hideDeleteDiv('${image.id}');"> </td> </c:forEach> <c:forEach begin="${i}" end="3" step="1" varStatus="idx"> <img src="${pageContext.request.contextPath}/img/drugstore/default.png" id="img" onclick="upload()" ></img> <span style="display: none"><input name="advImage" id="advImage" type="file" style="opacity: 0;"/></span> <input type="hidden" name="type" value="1" id="type1"> </c:forEach> </div>
js代码:
function upload(){ document.getElementById("advImage").click(); } $("input[name='advImage']").change(function(){ // 检查图片格式 var f=document.getElementById("advImage").value; if(!/.(gif|jpg|jpeg|png|JPG|PNG)$/.test(f)) { alert("图片类型必须是.jpeg,jpg,png中的一种") return false; } $.ajaxFileUpload( {url:"${pageContext.request.contextPath }/img/upload.do", secureuri:false, dataType:"text", fileElementId:"advImage", data: {//图片类型为1 即 店铺图片 "type": $("#type1").val(), }, success:function (data) { //上传成功后,直接跳出截图框,使用imgAreaSelect插件 window.location.reload(); }, error:function (data, status, e) { alert("图片上传失败,请重新选择图片"); } }); });
后台java代码:
@Controller@RequestMapping("/img")public class uploadimg{ @Autowired private BaseService baseService; @RequestMapping("/upload.do") public ModelAndView uploadPreviewImage(HttpServletRequest request, HttpServletResponse response) throws IOException{ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile image=null; if(multipartRequest.getFile("advImage")==null||"".equals(multipartRequest.getFile("advImage"))){ image = multipartRequest.getFile("aptitude"); }else if(multipartRequest.getFile("aptitude")==null||"".equals(multipartRequest.getFile("aptitude"))){ image = multipartRequest.getFile("advImage"); } String type=request.getParameter("type"); response.setCharacterEncoding("utf-8"); //response.setHeader("ContentType", "json"); response.setContentType("application/json"); if(image!=null){ long time = System.currentTimeMillis(); String logImageName = image.getOriginalFilename(); String file_ext = logImageName.substring(logImageName.lastIndexOf(".") + 1); // System.out.println("[fileType:"+fileType+"][fileName:"+fileName+"][fileSize:"+fileSize+"]"); //获得项目的跟目录 String realPath = request.getSession().getServletContext().getRealPath("/"); String realPathLast = realPath+"img\\drugstore\\"; String saveName=time+"."+file_ext; String src="img/drugstore/"+saveName; SaveFileFromInputStream(image.getInputStream(),realPathLast,saveName); //获得药店用户名 String account=(String) request.getSession().getAttribute("account"); //查找药店id String stat_find="com.yksStore.model.drugstore.findid"; Map<String, String> map1=new HashMap<String, String>(); map1.put("account", account); int drugstore_id= (Integer) baseService.find(stat_find, map1); String stat="com.yksStore.model.drugstore.inserimg"; Map map=new HashMap(); map.put("drugstore_id", drugstore_id); map.put("src", src); map.put("type", type); baseService.insert(stat, map); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=UTF-8"); //输出 try { response.getWriter().print(src); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; } public void SaveFileFromInputStream(InputStream inputStream,String path,String saveFilename) throws IOException{ FileOutputStream outputStream = new FileOutputStream(path+"/"+saveFilename); byte[] buffer = new byte[1024*1024]; int bytesum = 0; int byteread = 0; while ((byteread=inputStream.read(buffer))!=-1){ bytesum+=byteread; outputStream.write(buffer, 0, byteread); outputStream.flush(); } outputStream.close(); inputStream.close(); }}
用到的js:ajaxfileupload.js,ajaxfileupload.css, jquery.min.js
0 0
- 图片上传
- 上传图片
- 上传图片
- 上传图片
- 上传图片
- 上传图片
- 图片上传
- 图片上传
- 上传图片
- 上传图片
- 图片上传
- 图片上传
- 图片上传
- 图片上传
- 上传图片
- 上传图片
- 上传图片
- 图片上传
- programming-challenges Slash Maze (110904) 题解
- Swift学习笔记
- lua开发--模板渲染
- 信号槽
- PHP动态创建属性的get和set方法
- 图片上传
- block定义详解
- poj 3259 Wormholes 图论 最短路 判负环
- 增强现实(AR)笔记2:Vuforia+Unity例程ObjectRecognition
- YUM 的配置
- Android各个版本API的区别
- 状态图
- UsernamePasswordAuthenticationFilter是登陆用户密码验证过滤器,
- 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。