jsp传中文,上传图片
1 html 直接传参 jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<mata http-equiv=”content-type” content=”text/html; charset=utf-8”/>
var Lxlmc = "<%=java.net.URLDecoder.decode(request.getParameter("xlmc"),"UTF-8")%>";//linux
var xtxh = "<%=System.getProperty("os.name").toLowerCase()%>";//win
if(xtxh.substring(0,3)!="win"){
xlmc = Lxlmc;
}
2 文件分隔符linux与windows不同,用System.getProperty("file.separator")统一
private static final long serialVersionUID = -6525414170411696287L; private static final String updpathdir = System.getProperty("file.separator")+"public"+System.getProperty("file.separator")+"images"+System.getProperty("file.separator")+"upload"+System.getProperty("file.separator"); private String filedir="zhct";//文件所在文件夹 private String name;//图片名字 private String suffix="png";//图片扩展名 private File file;//上传单个文件 private int width = 200; private int height = 160; private List<MultipartFile> multiFiles;//上传多个文件 private OrderManagerInf orderManager; private int id; private String rq; //图片列表 public String getImgs() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); String realpath = request.getSession( ).getServletContext( ).getRealPath( "/" )+updpathdir+filedir; String[] fiename = null;//name存储file文件夹中的文件名 List<String> list = new ArrayList<>(); File newfile = new File(realpath); if(!newfile.exists()){ newfile.mkdirs();//如果目录不存在,新建 }else{ if (newfile.isDirectory()){//判断file是否是文件目录 若是返回TRUE fiename = newfile.list(); Collections.addAll(list, fiename); Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA)); } } request.setAttribute("random", System.currentTimeMillis()); request.setAttribute("filedir", filedir); request.setAttribute("fienames", list); return "picList"; } //上传图片,png,透明 public void updPngFile() throws Exception {//png,jpg图片,压缩,背景白的 HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String realpath = request.getSession( ).getServletContext( ).getRealPath( "/" )+updpathdir+filedir; Map<String, Object> re = new HashMap<>(); try{ if(file == null){ throw new Exception(I18nUtil.getText("basicModule.zhct.pic.notexit", session.getAttribute("appLang")+"")); } BufferedImage bi1 = ImageIO.read(file); if(bi1 == null){ throw new Exception(I18nUtil.getText("basicModule.zhct.pic.geshi", session.getAttribute("appLang")+"")); } if(file.length()>=500000){ throw new Exception(I18nUtil.getText("basicModule.zhct.pic.size", session.getAttribute("appLang")+"")); } File newfile = new File(realpath); if(!newfile.exists()){ newfile.mkdirs();//如果目录不存在,新建 } String fileName = name+".png"; String srcImgPath = realpath+System.getProperty("file.separator")+fileName; //存成png格式 FileInputStream is = new FileInputStream(file); BufferedImage sourceImg =ImageIO.read(new FileInputStream(file)); int width = sourceImg.getWidth(); int height = sourceImg.getHeight(); //获取图片流 ImageInputStream iis = ImageIO.createImageInputStream(is); Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(suffix); ImageReader reader = it.next(); reader.setInput(iis,true) ; ImageReadParam param = reader.getDefaultReadParam(); Rectangle rect = new Rectangle(0,0,width,height); param.setSourceRegion(rect); BufferedImage bi = reader.read(0,param); ImageIO.write(bi, suffix, new File(srcImgPath)); re.put("fileName", fileName); re.put("status", "success"); }catch (Exception e) { logger.info("updPngFile fail...", e); re.put("status", "exception"); re.put("message", e.getMessage()); } // 写入列表 查询结果 out.println(JSON.toJSONString(re)); out.flush(); out.close(); } //上传图片 public void updFile() throws Exception {//png,jpg图片,压缩,背景白的 HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String realpath = request.getSession( ).getServletContext( ).getRealPath( "/" )+updpathdir+filedir; Map<String, Object> re = new HashMap<>(); try{ if(file == null){ throw new Exception("文件不存在!"); } BufferedImage bi1 = ImageIO.read(file); if(bi1 == null){ throw new Exception("此文件不为图片文件"); } File newfile = new File(realpath); if(!newfile.exists()){ newfile.mkdirs();//如果目录不存在,新建 } Image srcFile = ImageIO.read(file); String fileName = name+".png"; String srcImgPath = realpath+System.getProperty("file.separator")+fileName; //存成png格式 BufferedImage buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = buffImg.createGraphics(); graphics.setBackground(new Color(255,255,255)); graphics.setColor(new Color(255,255,255)); graphics.fillRect(0, 0, width, height); graphics.drawImage(srcFile.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null); ImageIO.write(buffImg, "jpg", new File(srcImgPath)); re.put("fileName", fileName); re.put("status", "success"); }catch (Exception e) { logger.info("updFile fail...", e); re.put("status", "exception"); re.put("message", e.getMessage()); } // 写入列表 查询结果 out.println(JSON.toJSONString(re)); out.flush(); out.close(); } //删除图片 public void delFile() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String realpath = request.getSession( ).getServletContext( ).getRealPath( "/" )+updpathdir+filedir; Map<String, Object> re = new HashMap<>(); try{ String srcImgPath = realpath+System.getProperty("file.separator")+name; //存成png格式 File f = new File(srcImgPath); if(f.exists()){ f.delete(); } re.put("status", "success"); }catch (Exception e) { logger.info("delFile fail...", e); re.put("status", "exception"); re.put("message", e.getMessage()); } // 写入列表 查询结果 out.println(JSON.toJSONString(re)); out.flush(); out.close(); } //改变图片名称 public void editFile() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String realpath = request.getSession( ).getServletContext( ).getRealPath( "/" )+updpathdir+filedir; Map<String, Object> re = new HashMap<>(); try{ String oldPath = realpath+System.getProperty("file.separator")+name; //存成png格式 File f = new File(oldPath); String newPath = realpath+System.getProperty("file.separator")+request.getParameter("newName")+".png"; f.renameTo(new File(newPath)); //改名 re.put("status", "success"); }catch (Exception e) { logger.info("editFile fail...", e); re.put("status", "exception"); re.put("message", e.getMessage()); } // 写入列表 查询结果 out.println(JSON.toJSONString(re)); out.flush(); out.close(); }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <c:set var="ctx" value="<%=request.getContextPath()%>" /> <!DOCTYPE html> <html> <head> <%@ include file="/jsp/meta.jsp"%> <link rel="stylesheet" type="text/css" href="${ctx}/public/extjs/ExtGrid.css" /> <script type="text/javascript" src="${ctx}/public/js/jquery.js"></script> <script type="text/javascript" src="${ctx}/public/jQueryUI/jquery-ui.min.js"></script> <script type="text/javascript" src="${ctx}/public/js/ajaxfileupload.js"></script> <script type="text/javascript" src="${ctx}/js/locale/basicModule/zhct/menu_${appLang}.js"> </script> <script> window.onload = function() { hideLeft(); }; function uploadFile(obj) { var file = $("#file").val(); var name = getFileName(file); var index1=file.lastIndexOf("."); var index2=file.length; var suffix=file.toLowerCase().substring(index1+1,index2);//后缀名 if(suffix!="png" & suffix!="jpg" & suffix!="jpeg"){ Wg.alert(basicModule_zhct.resourceBundle.Error.geshi); return false; } var reg = /[\u4e00-\u9fa5]/g; if(reg.test(name)){ Wg.alert(basicModule_zhct.resourceBundle.Error.ischar); return false; } $.ajaxFileUpload({ url : "pic!updFile.do", secureuri : false,// 一般设置为false fileElementId : "file",// 文件上传表单的id <input type="file" id="fileUpload" name="file" /> dataType : 'json',// 返回值类型 一般设置为json data: {'name': name,'filedir': '${filedir}','width':${width},'height':${height}}, success : function(data) // 服务器成功响应处理函数 { var re = eval("(" + data + ")"); var timestamp=new Date().getTime();//id if(re.status == 'success'){ var html = '<div class="divKJ"><div style="height: 120px"><img class="divIMG" src="${ctx}/public/images/upload/${filedir}/'+name+'.png?rand=${random}"></div><div style="width: 110px;float: left;height:30px " ><input id="kd' +timestamp+'" onblur="edit(this,\''+name+'.png\')"'+' type="text" value="'+name+'" style="width: 150px;border:solid 0px #cc66cc;height:30px;background-color:#e1e1e1;color:black;" disabled="disabled"/></div>' +'<div style="width: 40px;float: right;height:30px;margin-top: 6px">' +'<img title="'+basicModule_zhct.resourceBundle.Text.edit+'" src="${ctx}/public/extjs/resources/icons/fam/editl.png" onclick="toInput(\'kd'+timestamp+'\')" style="cursor:pointer;"/>' +'<img title="'+basicModule_zhct.resourceBundle.Text.del+'" src="${ctx}/public/extjs/resources/icons/fam/dell.png" onclick="del(\''+name+'.png\',this)" style="cursor:pointer;"/></div></div>' $("#imgs").append(html); }else{ Wg.alert(re.message); } }, error : function(data)// 服务器响应失败处理函数 { Wg.alert(basicModule_zhct.resourceBundle.Error.upload); } }); return false; } //获取图片名称 function getFileName(o){ var pos=o.lastIndexOf("\\"); var fileName = o.substring(pos+1); pos=fileName.lastIndexOf("."); return fileName.substring(0,pos); } function del(name,tar){ Wg.confirm(basicModule_zhct.resourceBundle.Confirm.del, function() { $.ajax({ type: 'POST', url: 'pic!delFile.do', data: {'name': name,'filedir': '${filedir}'}, success : function(data) // 服务器成功响应处理函数 { var re = eval("(" + data + ")"); if(re.status == 'success'){ $(tar).parent().parent().remove(); }else{ Wg.alert(re.message); } }, error : function(data)// 服务器响应失败处理函数 { Wg.alert(basicModule_zhct.resourceBundle.Error.del); } }); }); } function toInput(id){ if($("#"+id).attr("disabled")=="disabled"){ $("#"+id).css('background-color','#FFFFFF'); $("#"+id).attr("disabled",false); $("#"+id).focus(); } } function edit(tar,name){ var newName = $(tar).val(); //中文判断 var reg = /[\u4e00-\u9fa5]/g; if(reg.test(newName)){ Wg.alert(basicModule_zhct.resourceBundle.Error.ischar); console.log(newName.length); $(tar).val(name.substring(0,name.length-4)); return false; } $(tar).attr("disabled",true); $(tar).css('background-color','#e1e1e1'); //修改 $.ajax({ type: 'POST', url: 'pic!editFile.do', data: {'name': name,'newName':newName,'filedir': '${filedir}'}, success : function(data) // 服务器成功响应处理函数 { var re = eval("(" + data + ")"); if(re.status != 'success'){ Wg.alert(re.message); } }, error : function(data)// 服务器响应失败处理函数 { Wg.alert(basicModule_zhct.resourceBundle.Error.upload); } }); } </script> <style> .fileInput{width: 150px;height: 150px;overflow: hidden;opacity: 0;filter:alpha(opacity=0);cursor:pointer;} .divKJ{border: 1px solid #e1e1e1;width: 150px;height: 150px;float: left;margin-left: 30px;margin-top: 30px} .divIMG{width:150px;height: 120px} </style> </head> <body> <div id="imgs"> <c:forEach items="${fienames}" var="item" varStatus="s"> <div class="divKJ"> <div style="height: 120px"><img class="divIMG" src="${ctx}/public/images/upload/${filedir}/${item}?rand=${random}"></div> <div style="width: 110px;float: left;height:30px;" > <input id="kd${s.index}" onblur="edit(this,'${item}')" type="text" value='${fn:substringBefore(item, ".")}' style="width: 150px;border:solid 0px #cc66cc;height:30px;background-color:#e1e1e1;color:black;margin:0" disabled="disabled"/> </div> <div style="width: 40px;float: right;height:30px;margin-top: 6px"> <img title="<s:text name="basicModule.dagl.zdda.edit" />" src="${ctx}/public/extjs/resources/icons/fam/editl.png" onclick="toInput('kd${s.index}')" style="cursor:pointer;"/> <img title="<s:text name="basicModule.dagl.zdda.del" />" src="${ctx}/public/extjs/resources/icons/fam/dell.png" onclick="del('${item}',this)" style="cursor:pointer;"/> </div> </div> </c:forEach> </div> <div class="divKJ" style="border:solid 0px #cc66cc;margin-top:15px"> <input class="fileInput" type="file" accept="image/*" name="file" id="file" onchange ="uploadFile(this)"/> <img id="bg" src="${ctx}/public/images/upd.png" height="140px" width="140px;" style="margin-top:-150px;margin-left:13px"/> </div> </body> </html>