uploadify插件实现文件多媒体文件上传(spring mvc)

不多说,这段代码网上实例很多,上代码

jsp 页面部分:

<script>
$(document).ready(function() {
    $("#cgbg_upload").uploadify({
      'swf' : 'app/js/uploadify/uploadify.swf',//控件flash文件位置
  //后台处理的请求(也就是action请求路径),后面追加了jsessionid,用来标示使用当前session(默认是打开新的session,会导致存在session校验的请求中产生302错误)
  	  'uploader' : 'rest/report/cgbgUpload?caselsh='+surveycaselsh,
      'queueID' : 'queue',//与下面HTML的div.id对应  
      'width' : '100',//按钮宽度
      'height' : '32',//按钮高度
      'fileTypeDesc' : '指定类型文件',
      'fileTypeExts' : '*.pdf',//控制可上传文件的扩展名,启用本项时需同时声明fileDesc 
      'fileObjName' : '"uploadify"',
      'buttonText' : '上传成果报告',//上传按钮显示内容,还有个属性可以设置按钮的背景图片
      'fileSizeLimit' : '1000000KB',
      'multi' : true,
      'overrideEvents' : [ 'onDialogClose', 'onUploadSuccess', 'onUploadError', 'onSelectError' ],//重写默认方法
      'onFallback' : function() {//检测FLASH失败调用
        alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");
      },
  //以下方法是对应overrideEvents的重载方法,具体实现是网上找到的一个别的朋友的代码,
  //我把这些方法抽到了一个自定义js中,我会在最后面贴出来
   	  'onSelect' : uploadify_onSelect,
      'onSelectError' : uploadify_onSelectError,
      'onUploadError' : uploadify_onUploadError,
      'onUploadSuccess' : uploadify_onUploadSuccess 
    });
    
    $("#chtz_upload").uploadify({
        'swf' : 'app/js/uploadify/uploadify.swf',//控件flash文件位置
    //后台处理的请求(也就是action请求路径),后面追加了jsessionid,用来标示使用当前session(默认是打开新的session,会导致存在session校验的请求中产生302错误)
    	  'uploader' : 'rest/report/chtzUpload?caselsh='+surveycaselsh,
        'queueID' : 'queue',//与下面HTML的div.id对应  
        'width' : '100',//按钮宽度
        'height' : '32',//按钮高度
        'fileTypeDesc' : '指定类型文件',
        'fileTypeExts' : '*.png;*.jpg',//控制可上传文件的扩展名,启用本项时需同时声明fileDesc 
        'fileObjName' : '"uploadify"',
        'buttonText' : '上传测绘图纸',//上传按钮显示内容,还有个属性可以设置按钮的背景图片
        'fileSizeLimit' : '1000000KB',
        'multi' : true,
        'overrideEvents' : [ 'onDialogClose', 'onUploadSuccess', 'onUploadError', 'onSelectError' ],//重写默认方法
        'onFallback' : function() {//检测FLASH失败调用
          alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");
        },
    //以下方法是对应overrideEvents的重载方法,具体实现是网上找到的一个别的朋友的代码,
    //我把这些方法抽到了一个自定义js中,我会在最后面贴出来
     	  'onSelect' : uploadify_onSelect,
        'onSelectError' : uploadify_onSelectError,
        'onUploadError' : uploadify_onUploadError,
        'onUploadSuccess' : uploadify_onUploadSuccess 
      });
  });
</script>

页面部分:

<div>
 <div id="queue"></div>
  <input id="cgbg_upload" name="cgbg_upload" type="file" multiple="true"/>
  <input id="chtz_upload" name="chtz_upload" type="file" multiple="true"/>
</div>

controller层控制层代码

 @RequestMapping(value = "cgbgUpload")
	 @ResponseBody
	 public String cgbgUpload(MultipartRequest request, HttpServletResponse response,String caselsh) {
	    //我试了一下虽然每个文件是分别上传的 但此处还要用Map来获取
	    Map<String,MultipartFile> fileMap = request.getFileMap();
	    for(String key : fileMap.keySet()){
	      MultipartFile mFile = fileMap.get(key);
	      try{
	        	reportService.uploadPDF(mFile,"cgbg",caselsh);
	        }catch (Exception e) {
	            System.out.println("文件上传失败");
	            throw new SurveyServiceException("文件上传异常", e);
	        }
	      //业务操作代码 begin
	      //业务操作代码 end
	    }
	    return "success";//返回给前台的提示信息
	  }

简单来说,就是前台传送图片,后台用MultipartRequest来接收文件,文件拿到了具体的操作就不是重点了,看个人情况而定


另外使用uploadify如果用到加载成功什么的特效,可以自己修改Js代码

下面是参考了网上的代码之后更改的代码

var uploadify_onSelectError = function(file, errorCode, errorMsg) {
  var msgText = "上传失败\n";
  switch (errorCode) {
  case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
    // this.queueData.errorMsg = "每次最多上传 " +
    // this.settings.queueSizeLimit + "个文件";
    msgText += "上传的文件数量已经超出系统限制的" + $('#file_upload').uploadify('settings', 'queueSizeLimit') + "个文件!";
    break;
  case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
    msgText += "文件 [" + file.name + "] 大小超出系统限制的" + $('#file_upload').uploadify('settings', 'fileSizeLimit') + "大小!";
    break;
  case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
    msgText += "文件大小为0";
    break;
  case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
    msgText += "文件格式不正确,仅限 " + this.settings.fileTypeExts;
    break;
  default:
    msgText += "错误代码:" + errorCode + "\n" + errorMsg;
  }
  alert(msgText);
};

var uploadify_onUploadError = function(file, errorCode, errorMsg, errorString) {
  // 手工取消不弹出提示
  if (errorCode == SWFUpload.UPLOAD_ERROR.FILE_CANCELLED || errorCode == SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED) {
    return;
  }
  var msgText = "上传失败\n";
  switch (errorCode) {
  case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
    msgText += "HTTP 错误\n" + errorMsg;
    break;
  case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
    msgText += "上传文件丢失,请重新上传";
    break;
  case SWFUpload.UPLOAD_ERROR.IO_ERROR:
    msgText += "IO错误";
    break;
  case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
    msgText += "安全性错误\n" + errorMsg;
    break;
  case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
    msgText += "每次最多上传 " + this.settings.uploadLimit + "个";
    break;
  case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
    msgText += errorMsg;
    break;
  case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
    msgText += "找不到指定文件,请重新操作";
    break;
  case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
    msgText += "参数错误";
    break;
  default:
    msgText += "文件:" + file.name + "\n错误码:" + errorCode + "\n" + errorMsg + "\n" + errorString;
  }
  alert(msgText);
}

var uploadify_onSelect = function() {

};
//文件上传成功之后回调函数
var uploadify_onUploadSuccess = function(file, data, response) {
};

var uploadify_onQueueComplete = function(){
  alert("全部完成-->并展示提示信息");
}

实际上做编程,很多时候还是需要参考别人的代码的,至少比自己写的要更加全面和详细,博学才能多才

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
新颖网络上传插件(StorageWebPlug)是一个支持超大文件(2GB,可扩展)上传的COM控件, 具备断点续传,文件MD5验证,大大提高上传效率、节省带宽,有详细的上传进度显示,支持多种脚本语言,欢迎下载体验。免费提供JavaScript SDK包。 产品特点: 1、文件上传使用增强的FTP协议,用户使用浏览器就可以上传超大文件到服务器(支持上传超过1G的文件)。 2、支持断点续传,系统智能续传未上传的文件,续传操作更简单,更方便,更快捷。 3、支持文件批量上传, 一次可以上传多个文件. 上传时有详细的状态显示(包括单个文件进度,整体进度,传输速率,剩余时间等)。 4、新颖网络免费提供JavaScript SDK包。通过新颖网络提供的封装好的JavaScript类库用户可以快速的与现有系统整合。 5、StorageWebPlug提供完善的接口和帮助文档,开发文档。开发人员可以动态设置上传保存路径, 设置允许扩展名, 允许最大大小等,可自定义强。 6、支持各种代理(HTTP, Socket4, Socket5等)。 7、组件采用多线程机制来保证上传效率。 8、支持批量文件上传, 用户可以一次性上传批量文件. 客户端可以绑定HTML表单变量, 服务端并可以接收表单变量 9、服务端文件保存路径可以随意指定,服务端文件保存路径可以灵活变化。保存路径支持网络路径。 10、为提高安全性,服务端组件可以指定用户权限 11、可以限制上传单个文件大小, 控制上传带宽上限, 允许文件扩展名, 拒绝文件扩展名等 12、上传数据时会根据网络状况来控制数据包大小, 避免网络堵塞 13、控件采用ATL编写, cab包只有59KB, 用56k的modem下载不会超过12秒 14、服务端支持Windows 2000 Server/Windows 2003 Server/Windows NT/Windows XP/Unix/Linux等操作系统 15、通过新颖网络业界领先的设计水平打造的操作界面可以帮助您的系统和产品获得更高的品质。 产品介绍:http://www.ncmem.com/service_storagewebplug.aspx 下载地址:http://www.ncmem.com/download.aspx
在SSM(Spring + SpringMVC + MyBatis)框架中使用Uploadify文件上传,首先需要在前端页面引入Uploadify插件,并编写相应的HTML和JavaScript代码来实现文件上传功能。在SpringMVC中需要编写文件上传的Controller来处理上传的文件,并在Controller中使用MultipartFile对象来接收文件数据,然后将文件保存到服务器的指定目录中。同时,还需要在Spring的配置文件中配置文件上传相关的Bean和参数,以确保正常的文件上传功能。 在处理文件上传的Controller中,可以使用MultipartFile对象的方法来获取文件的原始名称、大小、类型等信息,并对文件进行合法性校验,例如限制文件类型、大小等。接着将文件保存到服务器的指定目录中,可以使用File的相关API来实现文件的保存和写入操作。 在MyBatis中,若需要将文件信息保存到数据库中,需要创建相应的实体类来映射文件的信息,并编写相应的Mapper接口和SQL语句来实现文件信息的插入、查询等操作。 综上所述,使用Uploadify文件上传需要在前端引入插件并编写相应的HTML、JavaScript代码;在SpringMVC中编写文件上传的Controller来处理文件上传,并在Spring的配置文件中配置文件上传相关的Bean和参数;在MyBatis中编写相应的实体类、Mapper接口和SQL语句来实现文件信息的插入、查询等操作。通过以上步骤,就可以在SSM框架中成功实现Uploadify文件上传的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值