背景:感觉过了好久没有好好的写文章了,今天休息就来整理一下最近接触到的内容吧。顺便梳理一下学习到的知识。今天需要梳理的内容是图片的上传。
一、前期准备
在配置文件中配置你要上传的路径:
picture_windows=E/://picture//picture_linux=/home/picture/二、jsp
<%@ page contentType="text/html;charset=UTF-8" %><html><head> <title>上传图片</title> <meta name="decorator" content="default"/> <script type="text/javascript"> $(document).ready(function() { $("#name").focus(); $("#inputForm").validate({ submitHandler: function(form){ loading('正在提交,请稍等...'); form.submit(); }, errorContainer: "#messageBox", errorPlacement: function(error, element) { $("#messageBox").text("输入有误,请先更正。"); if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){ error.appendTo(element.parent().parent()); } else { error.insertAfter(element); } } }); }); </script></head><body> <form:form id="inputForm" modelAttribute="picture" action="${pageContext.request.contextPath}/sys/picture/save" method="post" class="form-horizontal" enctype="multipart/form-data"> <div class="control-group"> <label class="control-label">上传图片:</label> <div class="controls"> <input type="file" name="file" accept="image/png,image/jpeg" class="required" value="file"/> <span class="help-inline"><font color="red">*只支持JPG、PNG格式文件</font> </span> </div> </div> <div class="form-actions"> <input id="btnSubmit" class="btn btn-PRimary" type="submit" value="保 存"/> <input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/> </div> </form:form> </body></html>三、controller
/** * 上传图片Controller * @author 丽杰 * @version 2017-03-04 * */@Controller@RequestMapping(value = "${adminPath}/sys/picture")public class PictureController{ private File file; public File getFile() { return file; } public void setFile(File file) { this.file = file; } //-----------保存+文件上传-------start-------- @RequestMapping(value = "save") public String save(@RequestParam("file") CommonsMultipartFile file,PictureEntity pictureEntity, Model model, RedirectAttributes redirectAttributes)throws IOException { //1、生成文件的id String fileId = UUID.randomUUID().toString().replaceAll("-", ""); //2、获得文件的真实名字 String fileName=file.getOriginalFilename(); //3、获取文件的后缀 String suffix=fileName.substring(fileName.lastIndexOf(".")+1); //4、拼接文件名:ID+"."+后缀 String jointName = fileId+"."+suffix; //5、判断系统的类型并找到图片文件存放的位置 String dir =null; if(System.getProperty("os.name").toLowerCase().indexOf("windows") >= 0){ dir=Global.getConfig("picture_windows"); } if(System.getProperty("os.name").toLowerCase().indexOf("linux") >= 0){ dir=Global.getConfig("picture_linux"); } //6、判断picture文件夹是否存在,不存在,则创建 File dirFile=new File(dir); if(!dirFile.exists()){ dirFile.mkdirs(); } //7、获得上传路径以及拼接上传文件名 String path=dir+jointName; //8、上传 File newFile=new File(path); file.transferTo(newFile); addMessage(redirectAttributes, "保存图片成功!"); return "redirect:" + adminPath + "/sys/picture/"; } //-----------保存+文件上传-------end--------}四、学习心得
1、从配置文件中读取路径其实用Global.getConfig就可以了。
2、input的accept="image/png,image/jpeg" 属性可以控制上传文件的类型。
新闻热点
疑难解答