swfupload handle.js
发布时间:2020-12-15 18:17:14 所属栏目:百科 来源:网络整理
导读:function getCustomSetting(setting){var def = {flash_url : uploadSwf,upload_url: uploadUrl,post_params: {targetForm:"form"},file_size_limit : "10 MB",file_types : "*.jpg",file_types_description : "请选择图片文件",button_image_url: myImage+"
function getCustomSetting(setting){ var def = { flash_url : uploadSwf,upload_url: uploadUrl,post_params: {targetForm:"form"},file_size_limit : "10 MB",file_types : "*.jpg",file_types_description : "请选择图片文件",button_image_url: myImage+"/plugins/swfupload/upload_btn.gif",file_upload_limit : "0",file_queue_limit : "1",button_width: "216",button_height: "23",// custom_settings : { // upload_target : "fsUploadProgress",// cancelButtonId : "btnCancel" // },button_placeholder_id: "",button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT,button_action : SWFUpload.BUTTON_ACTION.SELECT_FILES,button_text: '',button_text_style: ".theFont { font-size: 14; }",button_text_left_padding: 5,button_text_top_padding: 5,button_cursor:SWFUpload.CURSOR.HAND,// file_queued_handler : fileQueued,// file_queue_error_handler : fileQueueError,// file_dialog_complete_handler : fileDialogComplete,// upload_start_handler : uploadStart,// upload_progress_handler : uploadProgress,// upload_error_handler : uploadError,// upload_success_handler : customUploadSuccess,// upload_complete_handler : uploadComplete,// queue_complete_handler : queueComplete // Queue plugin event // file_queued_handler : function(file){},// file_queue_error_handler : function(file,errorCode,message){},file_dialog_complete_handler : function(numFilesSelected,numFilesQueued){ this.startUpload(); },// upload_start_handler : function(file){},// upload_progress_handler : function(file,bytesLoaded,bytesTotal){},// upload_error_handler : function(file,upload_success_handler : customUploadSuccess,upload_complete_handler : function(file,obj){},queue_complete_handler : function(numFilesUploaded){} }; $.extend(def,setting); return def; } package com.xxx.basicspace.back.controller; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; import org.apache.log4j.Logger; import org.springframework.stereotype.Controller; import org.springframework.ui.ExtendedModelMap; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartFile; @Controller public class FileUploadController { private static Logger logger = Logger.getLogger(FileUploadController.class); /** * <p class="detail">图片传处理function</p> * * @author <a href="mailto:zouping@wokejia.com ">邹平</a> 2012-4-10 下午01:31:19 * @param <b>这里参数</b> * @return String ? ?返回类型? * @throws */ @RequestMapping(value="/uc/uploadFileLogo.htm",method=RequestMethod.POST) public void uploadFileLogo(HttpServletRequest request,HttpServletResponse response,String targetDom){ try { response.setContentType("text/html; charset=GBK"); String fileName ?= ""; //项目发布路径 String path = request.getSession().getServletContext().getRealPath("")+File.separator; //临时文件夹 String foler = File.separator+WokeFinal.HEAD_IMG; //得到图片临时存放路径 File pfile = new File(path+foler); if(!pfile.exists()){ pfile.mkdirs(); } if(request instanceof MultipartHttpServletRequest){ //取得文件流 MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request; Map<String,MultipartFile> fileMap = mrequest.getFileMap(); Iterator<String> fileNames = mrequest.getFileNames(); while (fileNames.hasNext()) { String inpuFileName = (String) fileNames.next(); CommonsMultipartFile file = (CommonsMultipartFile) fileMap.get(inpuFileName); String fileByte = file.getFileItem().getName(); fileName = createFileName(fileByte); try { byte [] ss = file.getBytes(); FileOutputStream out = new FileOutputStream(path+foler+File.separator+fileName); ? //需要优化? out.write(ss); ? ? ? ? out.flush(); ? ? ? ? out.close(); ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ?} } response.getWriter().write("{'targetDom':'"+targetDom+"','fileName':'"+fileName+"'}");? }else{ response.getWriter().write("false"); } } catch (IOException e) { e.printStackTrace(); } } /** * <p class="detail">百度ueditor编辑器上传</p> * @author <a href="mailto:luoweijun@wokejia.com ">罗伟俊</a> 2013-1-22 下午6:19:04 * @param request * @param response * @param targetDom * @param model * @return */ @RequestMapping(value="/upload/baiduUploadFile.htm",method=RequestMethod.POST) @ResponseBody public String baiduUploadFile(HttpServletRequest request,String targetDom){ response.setContentType("text/html; charset=GBK");? String fileName ?= ""; Map<String,Object> resultMap = new HashMap<String,Object>(); //项目发布路径 String path = WokeFinal.realPath+"/"; //临时文件夹 String foler = "/"+WokeContext.getSystemProperties().getProperty("uploadColorful"); //得到图片临时存放路径 File saveDir = new File(path+foler+File.separator); if(!saveDir.exists()){ saveDir.mkdirs(); } if(request instanceof MultipartHttpServletRequest){ //取得文件流 MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request; Map<String,MultipartFile> ?fileMap = mrequest.getFileMap(); Iterator<String> fileNames = mrequest.getFileNames(); while (fileNames.hasNext()) { String inpuFileName = (String) fileNames.next(); CommonsMultipartFile file = (CommonsMultipartFile) fileMap.get(inpuFileName); String fileByte = file.getFileItem().getName(); fileName = createFileName(fileByte); try { ImgUtil.getNew().upload(file.getInputStream(),path+foler+File.separator+fileName,-1,false,null,1,-1); ? ? ? ?} catch (Exception e) { ? ? ? ? logger.error("",e); ? ? ? ?} } String url = foler+"/"+fileName; resultMap.put("url",url); resultMap.put("title",request.getParameter("pictitle")); resultMap.put("state","SUCCESS"); }else{ resultMap.put("url",""); resultMap.put("title",""); resultMap.put("state","保存失败"); } return JSONObject.fromObject(resultMap).toString();//{ "url":"图片地址","title":"图片描述","state":"上传状态" } } /** * <p class="detail">图片传处理function</p> * * @author <a href="mailto:zouping@wokejia.com ">邹平</a> 2012-4-10 下午01:31:19 * @param <b>这里参数</b> * @return String ? ?返回类型? * @throws */ @SuppressWarnings("unchecked") @RequestMapping(value="/upload/uploadFile.htm",method=RequestMethod.POST) public void uploadFile(HttpServletRequest request,String targetDom,ExtendedModelMap model){ try { response.setContentType("text/html; charset=GBK"); String filePath="",fileName ?= ""; //项目发布路径 String dir = WokeFinal.realPath+File.separator; //临时文件夹 String foler = File.separator+WokeFinal.TMEP_FILE; //按月创建的临时文件夹 String tempFoler = DateUtil.getString("yyyyMM"); //得到图片临时存放路径 File pfile = new File(dir+foler+File.separator+tempFoler); if(!pfile.exists()){ pfile.mkdirs(); } if(request instanceof MultipartHttpServletRequest){ //取得文件流 MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request; Map<String,MultipartFile> fileMap = mrequest.getFileMap(); Iterator<String> fileNames = mrequest.getFileNames(); while (fileNames.hasNext()) { String inpuFileName = (String) fileNames.next(); CommonsMultipartFile file = (CommonsMultipartFile) fileMap.get(inpuFileName); String fileByte = file.getFileItem().getName(); //图片格式验证 fileName = createFileName(fileByte); filePath = foler+File.separator+tempFoler+File.separator+fileName; try { byte [] ss = file.getBytes(); FileOutputStream out = new FileOutputStream(dir+filePath); ? //需要优化? out.write(ss); ? ? ? ? out.flush(); ? ? ? ? out.close(); ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ?} } filePath = filePath.replace("","/"); Map<String,Object> map = new HashMap<String,Object>(); map.putAll(request.getParameterMap()); map.put("targetDom",targetDom); map.put("filePath",filePath); map.put("fileName",fileName); JSONObject jsonObj ?= JSONObject.fromObject(map); response.getWriter().write(jsonObj.toString());? }else{ logger.debug("文件上传请求类型错误!>>>>>>>>>>>>>>>"); response.getWriter().write("false"); } } catch (IOException e) { e.printStackTrace(); } } /** *? * <p class="detail">图片传处理function</p> * * @author <a href="mailto:zouping@wokejia.com ">邹平</a> 2012-4-10 下午01:31:19 * @param <b>这里参数</b> * @return String ? ?返回类型? * @throws */ @RequestMapping(value="/uc/uploadColorful.htm",method=RequestMethod.POST) public String uploadColorful(HttpServletRequest request,Model model){ response.setContentType("text/html; charset=GBK");? long start = System.currentTimeMillis(); String fileName ?= ""; //项目发布路径 String path = request.getSession().getServletContext().getRealPath("")+File.separator; //临时文件夹 String foler = File.separator+WokeContext.getSystemProperties().getProperty("uploadColorful"); //得到图片临时存放路径 File pfile = new File(path+foler+File.separator); if(!pfile.exists()){ pfile.mkdirs(); } if(request instanceof MultipartHttpServletRequest){ //取得文件流 MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request; Map<String,MultipartFile> ?fileMap = mrequest.getFileMap(); Iterator<String> fileNames = mrequest.getFileNames(); //水印存放地址 String syPath = WokeContext.getSystemProperties().getProperty("shuiyinpath"); //生成水印目标文件夹 File syDir = new File(path+ File.separator + syPath); if(!syDir.exists()){ model.addAttribute("error",1); ? ? ? ? model.addAttribute("message","上传错误!"); ? ? ? ? return "texTemplate"; } while (fileNames.hasNext()) { String inpuFileName = (String) fileNames.next(); CommonsMultipartFile file = (CommonsMultipartFile) fileMap.get(inpuFileName); String fileByte = file.getFileItem().getName(); fileName = createFileName(fileByte); try { ImgUtil.getNew().upload(file.getInputStream(),syDir,e); ? ? ? ? ? ?e.printStackTrace(); ? ? ? ?} logger.debug("==fileName===="+fileName); } ? ? ? ? model.addAttribute("error",0); ? ? ? ? model.addAttribute("url",fileName); long end = System.currentTimeMillis(); ? ?logger.debug("end-start=="+(end-start)); }else{ model.addAttribute("error",1); ? ? ? ? model.addAttribute("message","上传错误!"); } return "texTemplate"; } @RequestMapping(value="/getUploadFile") public String getUploadFile(){ logger.debug("getUploadFile"); return "/upload/uploadfile"; } private String createFileName(String fileName){ String postfix = ?fileName.substring(fileName.length()-4,fileName.length()); return StringUtil.uuid()+postfix; } /** *? * Description: ? 验证上传文件格式 ? 暂定为.jpg */ private boolean checkImageType(String fileName){ boolean flag = false; if(fileName.endsWith(".jpg") || fileName.endsWith(".JPG")){ flag = true; } return flag; } /** *? * <p class="detail">上传有水印的主图片</p> * * @author <a href="mailto:zouping@wokejia.com ">邹平</a> 2012-4-10 下午01:31:19 * @param <b>这里参数</b> * @return String ? ?返回类型? * @throws */ @RequestMapping(value="/uploadAddSy",method=RequestMethod.POST) public void uploadAddSy(HttpServletRequest request,HttpServletResponse response){ try { long start = System.currentTimeMillis(); response.setContentType("text/html; charset=GBK"); boolean upFlag = false; String fileName ?= ""; //项目发布路径 String path = request.getSession().getServletContext().getRealPath("")+File.separator; logger.debug("项目的发布路径:"+path); //临时文件夹 String foler = File.separator+WokeContext.getSystemProperties().getProperty(WokeFinal.TMEP_FILE); //按月创建的临时文件夹 String tempFoler = DateUtil.getString("yyyyMM"); //得到图片临时存放路径 File pfile = new File(path+foler+File.separator+tempFoler); if(!pfile.exists()){ pfile.mkdirs(); } //水印存放地址 String syPath = WokeContext.getSystemProperties().getProperty("shuiyinpath"); //生成水印目标文件夹 File syDir = new File(path+ File.separator + syPath); if(!syDir.exists()){ logger.debug("水印文件夹不存在!>>>>>>>>>>>>>>>"); } if(request instanceof MultipartHttpServletRequest){ //取得文件流 MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request; Map<String,MultipartFile> fileMap = mrequest.getFileMap(); Iterator<String> fileNames = mrequest.getFileNames(); while (fileNames.hasNext()) { String inpuFileName = (String) fileNames.next(); CommonsMultipartFile file = (CommonsMultipartFile) fileMap.get(inpuFileName); String fileByte = file.getFileItem().getName(); //图片格式验证 if(upFlag==checkImageType(fileByte)){ return ; }else{ upFlag = checkImageType(fileByte); } //生成一个新图片名 fileName = createFileName(fileByte); try { ImgUtil.getNew().upload(file.getInputStream(),pfile+File.separator+fileName,-1); ? ? ? ?} catch (Exception e) { ? ? ? ? logger.error("图片上传失败!",e); ? ? ? ?} logger.debug("==fileName===="+fileName); } ? ? ? ? if(!upFlag){ ? ? response.getWriter().write("false"); ? ? ? ? }else{ ? ? ? ? logger.debug(tempFoler+"_"+fileName); ? ? response.getWriter().write(tempFoler+"_"+fileName); ? ? ? ? } long end = System.currentTimeMillis(); ? ?logger.debug("图片上传共耗时>>>>>>>>>>>>>>>>>"+(end-start)); }else{ logger.debug("文件上传请求类型错误!>>>>>>>>>>>>>>>"); response.getWriter().write("false"); } } catch (IOException e) { e.printStackTrace(); } } @RequestMapping(value="/uploadFile",HttpServletResponse response){ try { long start = System.currentTimeMillis(); response.setContentType("text/html; charset=GBK"); boolean upFlag = false; String fileName ?= ""; String message = "对不起,文件上传失败了!请检查你上传的文件格式!"; //项目发布路径 String path = request.getSession().getServletContext().getRealPath("")+File.separator; logger.debug("项目的发布路径:"+path); //临时文件夹 String foler = File.separator+WokeContext.getSystemProperties().getProperty(WokeFinal.TMEP_FILE); //按月创建的临时文件夹 String tempFoler = DateUtil.getString("yyyyMM"); //得到图片临时存放路径 File pfile = new File(path+foler+File.separator+tempFoler); if(!pfile.exists()){ pfile.mkdirs(); } if(request instanceof MultipartHttpServletRequest){ //取得文件流 MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request; Map fileMap = mrequest.getFileMap(); Iterator<String> fileNames = mrequest.getFileNames(); while (fileNames.hasNext()) { String inpuFileName = (String) fileNames.next(); CommonsMultipartFile file = (CommonsMultipartFile) fileMap.get(inpuFileName); String fileByte = file.getFileItem().getName(); //图片格式验证 if(upFlag==checkImageType(fileByte)){ return ; }else{ upFlag = checkImageType(fileByte); } fileName = createFileName(fileByte); try { byte [] ss = file.getBytes(); FileOutputStream out = new FileOutputStream(path+foler+File.separator+tempFoler+File.separator+fileName); ? //需要优化? out.write(ss); ? ? ? ? out.flush(); ? ? ? ? out.close(); ? ? ? ? message = "图片上传成功!"; ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ?} logger.debug("==fileName===="+fileName); } ? ? ? ? ? if(!upFlag){ ? ? response.getWriter().write("false"); ? ? ? ? }else{ ? ? ? ? logger.debug(tempFoler+"_"+fileName); ? ? response.getWriter().write(tempFoler+"_"+fileName); ? ? ? ? } long end = System.currentTimeMillis(); ? ?logger.debug("end-start=="+(end-start)); }else{ logger.debug("文件上传请求类型错误!>>>>>>>>>>>>>>>"); response.getWriter().write("false"); } } catch (IOException e) { e.printStackTrace(); } } } //上传成功 function customUploadSuccess(file,serverData) { var progress = false; if(typeof FileProgress != "undefined"){ var progress = new FileProgress(file,this.customSettings.progressTarget); } try { eval("var serverData = "+serverData+";"); if(progress){ progress.setComplete(); progress.setStatus("上传完成.."); } var oldSrc = ""; if(serverData.targetDom && serverData.filePath){ oldSrc = $(serverData.targetDom).attr("src"); $(serverData.targetDom).attr("src",myPath+serverData.filePath); } if(serverData.targetForm && serverData.targetForm[0] && serverData.inputValue[0] && serverData.filePath && serverData.fileName){ var $form = $(serverData.targetForm[0]); var $oldImgs = $form.find("#oldImgs"); var $hiddenHtml = $("<input name='"+serverData.inputValue[0]+"' value='"+serverData.fileName+"' type='hidden' />"); var $hiddenAlias = ""; var isHiddenAlias = false; if(serverData.name && serverData.name[0]){//创建一个name 的隐藏表单 $hiddenAlias = $("<input name='"+serverData.name[0]+"' value='"+serverData.fileName+"' type='hidden' />"); isHiddenAlias = true; } if(serverData.domClass){//添加class,在删除的时候级联删除隐藏表单 $hiddenHtml.addClass(serverData.domClass[0]); if(isHiddenAlias)$hiddenAlias.addClass(serverData.domClass[0]); } //老图片 if($oldImgs.length == 0){ $form.prepend("<input id='oldImgs' name='oldImgs' value='"+oldSrc+"' type='hidden'/>"); }else{ oldSrc = $oldImgs.val() + ","+oldSrc; $oldImgs.val(oldSrc); } var $inputHidden = $form.find("input[name='"+serverData.inputValue[0]+"']"); $inputHidden.remove(); $hiddenHtml.prependTo($form); if(isHiddenAlias){ $form.find("input[name='"+serverData.name[0]+"']").remove(); $hiddenAlias.prependTo($form); } if(serverData.group && serverData.group[0]){ var groupStr = serverData.group[0].replace("[","[").replace("]","]"); $hiddenHtml.attr("uploadgroup",groupStr); ? var $group = $form.find("input[uploadgroup='"+groupStr+"']"); if($("#uploadGroup_"+groupStr).length == 0){ var $groupHtm = $("<input name='"+serverData.group[0]+"' id='uploadGroup_"+serverData.group[0]+"' value='"+serverData.fileName+"' type='hidden' />"); $form.prepend($groupHtm); if(serverData.domClass){$groupHtm.addClass(serverData.domClass[0]);} }else{ var groupHiddenValue = "";? for(var i=0;i<$group.length;i++){ if(i > 0){groupHiddenValue+=",";}; groupHiddenValue += $group.eq(i).val(); } $("#uploadGroup_"+groupStr).val(groupHiddenValue); } } } } catch (ex) { this.debug(ex); } if(progress){ progress.toggleCancel(false); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |