plupload分段上传文件,struts2后台接收
来源:互联网 发布:网络电视直播网址大全 编辑:程序博客网 时间:2024/05/22 08:53
一个简单的plupload例子
在网上找了许多例子,都不能用,有些后台竟然还是servlet?
后来在这里找到一份简单而且能用的例子plupload组件结合struts2完成上传 ,不过他的没有分段上传,我就自己改了下。
下面是内容:
jsp代码
<input type="hidden" id="saveFileName"/><button id="pickfiles" class="outButton btn btn-success">导入Excel</button><span id="filelist" ><font style="color:#666666;" size="2">您的浏览器未安装 Flash, Silverlight, Gears, BrowserPlus 或者支持 HTML5.</font></span>
js代码
function initPlupload(){var uploader = new plupload.Uploader({ runtimes : 'html5,flash,silverlight,html4', browse_button : 'pickfiles', // you can pass an id... //container: document.getElementById('container'), // ... or DOM Element itself url : appPath + "/personInfo/personExcel_uploadExcel.do", flash_swf_url : appPath + '/js/lib/plupload/Moxie.swf', silverlight_xap_url : appPath + '/js/lib/plupload/Moxie.xap', chunk_size : '1mb', filters : { max_file_size : '20mb',//限制文件大小 mime_types: [ { title : "Excel files", extensions : "xlsx,xls"} ], //限制文件类型 prevent_duplicates : true //不允许选取重复文件 }, init: { BeforeUpload :function(up,file){ //分段上传,会获取不到原名,所以这里添加了一个额外的参数用来传递文件名 up.settings.multipart_params = {trueName : file.name}; }, PostInit: function() { document.getElementById('filelist').innerHTML = ''; }, FilesAdded: function(up, files) { if(up.files.length>1) { alert("只允许上传单个文件!"); return; } plupload.each(files, function(file) { document.getElementById('filelist').innerHTML += '<span id="' + file.id + '"><font style="color:#666666;" size="2">' + file.name + ' (' + plupload.formatSize(file.size) + ')</font> <b></b></span>'; up.start(); }); }, UploadProgress: function(up, file) { document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>"; }, UploadComplete: function(up, file) { if(up.files.length<1) { alert("请点击选择文件,再进行上传!"); return; } alert("上传成功!"); setTimeout(function(){ $("#filelist").empty(); }, 10000); //up.destroy(); }, FileUploaded:function(uploader,file,responseObject) { var response = JSON.stringify(responseObject.response); console.log("response:"+response); $("#saveFileName").val(response); }, Error: function(up, err) { if("Duplicate file error." == err.message){ alert("上传失败,不允许选取重复文件"); }else{ alert("上传失败,"+err.message); } setTimeout(function(){ $("#filelist").empty(); }, 10000); } } }); uploader.init();}
action代码
全局属性
//块总数private int chunks = -1;//当前块private int chunk = 1;private String fileFileName; //文件名称,在分段时变成blob,分段无用private String fileContentType; //文件类型 private File file; //上传过来的文件private String saveFileName;private String trueName;//带参传过来的真实文件名//一些getter、setter方法在此省略
方法
public void uploadExcel(){String savePath = ServletActionContext.getServletContext().getRealPath("upload/plupload");System.out.println("\n\n\n\n\n"+savePath); //String name = UUID.randomUUID().toString().replace("-", "");//唯一id,这里在分段上传时无用 File uploadfile = null; String saveFileName = null; //saveFileName = name + "_" + fileFileName; saveFileName = trueName; System.out.println("saveFileName:"+saveFileName); System.out.println("trueName:"+trueName); uploadfile = new File(savePath, saveFileName); if (!uploadfile.getParentFile().exists()) { uploadfile.getParentFile().mkdirs(); } if(chunk==0 && uploadfile.exists()){ uploadfile.delete(); uploadfile = new File(savePath, saveFileName); } FileOutputStream fos = null; FileInputStream fis = null; try { if(uploadfile.exists()){ fos = new FileOutputStream(uploadfile, true); }else{ fos = new FileOutputStream(uploadfile); } fis = new FileInputStream(file); byte[] buffers = new byte[1024]; int len = 0; while ((len = fis.read(buffers)) != -1) { fos.write(buffers, 0, len); } if(chunk == chunks-1){ //一个完整的文件上传 } response.setContentType("text/html;charset=UTF-8"); response.getWriter().write(saveFileName); } catch (IOException e) {e.printStackTrace();response.setContentType("text/html;charset=UTF-8"); try {response.getWriter().write("上传发生错误");} catch (IOException e1) {e1.printStackTrace();}}finally { try {fos.close();fis.close();} catch (IOException e) {e.printStackTrace();} } }
阅读全文
1 0
- plupload分段上传文件,struts2后台接收
- ajax上传文件struts2后台接收处理
- 使用httpclient模拟表单上传文件,后台用struts2接收
- js上传文件 java后台接收文件
- js上传文件 java后台接收文件
- Extjs4---文件上传,后台struts2
- plupload+struts2实现文件上传下载
- jquery 文件上传 Plupload API
- Web文件上传模块 Plupload
- plupload上传文件中文名乱码
- web 文件上传组件 Plupload
- PLUpload文件上传的使用
- MVC 多文件上传后台接收
- phonegap上传及后台springmvc接收文件
- web文件上传,webapi后台接收
- plupload 上传组件,后台用java实现
- plupload组件结合struts2完成上传
- HttpClient4 post上传文件, struts2 action接收
- linux下配置python环境 django创建helloworld项目
- nginx禁止非sever_name指定域名访问
- nginx防盗链配置
- smv(五)smo算法
- 大学还可以干点什么呢?
- plupload分段上传文件,struts2后台接收
- centos alias命令详解
- MySql基础知识回顾与总结(一)
- php在循环内外实例化类占用内存比较
- 我在altera15下的第一个基于qsys的 nios2程序运行成功了
- php中隐形字符65279(utf-8的BOM头)问题和fwrite写入文件bom头导致的乱码问题解决
- 装饰器(Decorators)
- 远程连接mysql 报10038错误的解决 阿里云 linux ECS wdcp
- php fwrite写入文件bom头导致的乱码问题解决