首页 > 代码库 > java Web 文件上传
java Web 文件上传
注意:请求实体过大的问题,请修改Nginx服务器的大小(百度参考413 Request Entity Too Large 的解决方法)
jsp:<input type="file" style="height: 114px;width: 100%;position: absolute;opacity: 0;" name="file1" id="file1" >
$(function(){ $("#file1").change(function(){ //创建FormData对象 var data = http://www.mamicode.com/new FormData(); //为FormData对象添加数据 $.each($(‘#file1‘)[0].files, function(i, file) { data.append(‘upload_file‘, file); }); $.ajax({ url:‘${pageContext.request.contextPath}/uploadImage‘, type:‘POST‘, data:data, cache: false, contentType: false, //不可缺 processData: false, //不可缺 success:function(data){ //显示追加 var imgUrl="/"+data; var showImg = "<div class=‘img-item‘>" + "<img src=http://www.mamicode.com/‘" + imgUrl + "‘>" + "<span class=‘close-item iconfont‘></span>" + "</div>"; $("#addImg").before(showImg); //数据追加 var inputImg = "<input type=‘hidden‘ name=‘postImage‘value=http://www.mamicode.com/‘" + imgUrl + "‘ >"; $("#typeId").after(inputImg); } }); }); });
java后台部分:
1 @RequestMapping(value = "http://www.mamicode.com/uploadImage", method = RequestMethod.POST) 2 @ResponseBody 3 public String uploadImage(HttpServletRequest request) throws IOException { 4 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request; 5 Iterator<String> iterator = multipartRequest.getFileNames(); 6 String fileName = ""; 7 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); 8 String dir = "upload/" + sdf.format(new Date()) + "/"; 9 String realPath = request.getSession().getServletContext().getRealPath("/"); 10 while(iterator.hasNext()){ 11 MultipartFile multipartFile = multipartRequest.getFile(iterator.next()); 12 if(multipartFile != null){ 13 String fn = multipartFile.getOriginalFilename(); 14 String suffix = fn.substring(fn.lastIndexOf(".")); 15 fileName = dir + Utils.getRandomStringByLength(6) + suffix; 16 String path = realPath + fileName; 17 path = path.replace("\\", "/"); 18 File f = new File(path); 19 if(!f.mkdirs()){ 20 f.mkdir(); 21 } 22 multipartFile.transferTo(f); 23 } 24 } 25 return fileName; 26 } 27 // 上面方法需要用到下面的方法 28 public String getRandomStringByLength(int length) { 29 String base = "abcdefghijklmnopqrstuvwxyz0123456789"; 30 Random random = new Random(); 31 StringBuffer sb = new StringBuffer(); 32 for (int i = 0; i < length; i++) { 33 int number = random.nextInt(base.length()); 34 sb.append(base.charAt(number)); 35 } 36 return sb.toString(); 37 }
java Web 文件上传
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。