JFinal中怎么使用ajaxfileupload实现图片上传功能
今天就跟大家聊聊有关JFinal中怎么使用ajaxfileupload实现图片上传功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联专注于企业成都营销网站建设、网站重做改版、安塞网站定制设计、自适应品牌网站建设、成都h5网站建设、商城系统网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为安塞等各大城市提供网站开发制作服务。
1.前端jsp页面核心代码
<%=request.getContextPath() %>/media/file/${banner.img}" id="imgsrc"/>
function ajaxFileUpload(fileEid, paramdata){ if(typeof(paramdata)=='undefined') paramdata = {}; var $file=$('#'+fileEid).val(); if($file=='') {alert("请先选择对应的上传文件,谢谢"); return;} $.ajaxFileUpload({ url:'<%=request.getContextPath()%>/banner/uploadpic', secureuri:false, fileElementId:fileEid, dataType: 'text', data:paramdata, success: function (result){ var result = result.substring(result.indexOf("{"),result.indexOf("}")+1); result = eval("("+result+")"); if(result.t==1){ $("#imgsrc").attr("src","<%=request.getContextPath() %>/media/file/"+result.msg); $("#imgurl").val(result.msg); }else{ alert("上传失败"); } } });}
2.后台核心代码
public void uploadpic(){ UploadFile upfile = getFile();//JFinal规定getFile()必须最先执行 File file = upfile.getFile(); String filename = file.getName(); String delfilename = filename; if(filename!=null && !filename.equals("")){ filename = new SimpleDateFormat("yyyyMMddkkmmss").format(new Date())+filename; /** * 新保存的位置 */ String path = getRequest().getSession().getServletContext() .getRealPath("/"); String newPath = "/media/file/";//自定义目录 用于存放图片 /** * 没有则新建目录 */ File floder = new File(path + newPath); if (!floder.exists()) { floder.mkdirs(); } /** * 保存新文件 */ FileInputStream fis = null; FileOutputStream fos = null; try{ File savePath = new File(path + newPath + filename); if(!savePath.isDirectory()) savePath.createNewFile(); fis = new FileInputStream(file); fos = new FileOutputStream(savePath); byte[] bt = new byte[300]; while (fis.read(bt, 0, 300) != -1) { fos.write(bt, 0, 300); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(null!=fis) fis.close(); if(null!=fos) fos.close(); }catch(Exception e){ e.printStackTrace(); } } /** * 删除原图片,JFinal默认上传文件路径为 /upload(自动创建) */ File delFile = new File(path+"/upload/"+delfilename); if(delFile.exists()){ delFile.delete(); } setAttr("msg",filename); setAttr("t",1); }else{ setAttr("t",0); } renderJson();}
附:ajaxfileupload.js代码
jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId = 'jUploadFrame' + id; var iframeHtml = '