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);
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
