java中uploadify_Java调用uploadify实现文件上传Demo实现

导读:uploadify是来自国外的一款优秀的基于jQuery的文件上传插件,主要功能是批量上传文件,此插件在项目中已被广泛之用,于是决定花点时间搞了一个基于Java语言的demo,特此公布出来。

一、采用版本及页面基本引入介绍:

我们需要在html页面的

标签中加入如下代码:

二、uploadify页面初始化:

1、在页面需要展示的上传的地方加入如下代码:

save.gif 上传课件:  

注意:代码中的 和

2、初始化上传组件:

$(document).ready(function(){

$("#uploadify").uploadify({

'uploader': '/res/plugin/uploadify/uploadify.swf',

'script':"/fileserver/upload",

'cancelImg': '/res/plugin/uploadify/cancel.png',

'queueID': 'fileQueue',

'auto': true,

'buttonText': 'select',

'simUploadLimit' : 1,

'queueSizeLimit' : 1,

'fileExt': '*.jpg;*.gif;*.jpeg;*.png;*.bmp;*.zip;*.rar;*.7z',

onComplete: function(event, queueID, fileObj, response, data) {

//转换为json对象

var dataObj = eval("("+response+")");

saveFile(dataObj);

},

onSelect:function(){

},

onError: function(event, queueID, fileObj) {

alert("文件:" + fileObj.name + "上传失败");

}

});

});

三、uploadify上传处理的Java代码:

1、上传servlet代码:

这里我们使用Servlet来实现文件的上传处理,参考代码:

import com.poweree.util.DateUtils;

import net.sf.json.JSONObject;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.*;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

/**

* Created with IntelliJ IDEA.

* User: http://www.mbaike.net

* Date: 13-10-31

* Time: 下午4:31

* To change this template use File | Settings | File Templates.                                   a

*/

public class FileServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Map map = new HashMap();

request.setCharacterEncoding("utf-8");

DiskFileItemFactory factory = new DiskFileItemFactory();

String path = request.getRealPath("/file");

factory.setRepository(new File(path));

factory.setSizeThreshold(1024*1024) ;

ServletFileUpload upload = new ServletFileUpload(factory);

try {

//可以上传多个文件

List list = (List)upload.parseRequest(request);

for(FileItem item : list){

if(!item.isFormField()){

String name = item.getName() ;

String fileSuffix  = name.substring(name.lastIndexOf(".")+1,name.length());

String oldName = name.replaceAll("." + fileSuffix,"");

String fileName = DateUtils.getNowTime(DateUtils.DATE_All_KEY_STR);

String newName = fileName + "." + fileSuffix;

OutputStream out = new FileOutputStream(new File(path,newName));

InputStream in = item.getInputStream() ;

int length = 0 ;

byte [] buf = new byte[1024] ;

while( (length = in.read(buf) ) != -1){

out.write(buf, 0, length);

}

in.close();

out.close();

/**将上传处理后的数据返回**/

map.put("fileSuffix",fileSuffix);

map.put("fileName",oldName);

map.put("filePath",fileName);

break;

}

}

}catch (Exception e) {

System.out.println("出错了:" + e.getMessage());

}

response.setContentType("text/xml; charset=UTF-8");

response.setHeader("Cache-Control", "no-cache");

response.setHeader("Pragma", "no-cache");

PrintWriter out = response.getWriter();

JSONObject jsonObject = JSONObject.fromObject(map);

String msg =  jsonObject.toString();

out.print(msg);

out.close();

}

public void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

doPost(req, resp);

}

}

代码中的String fileName = DateUtils.getNowTime(DateUtils.DATE_All_KEY_STR); 主要是为了生成文件的唯一名称(日期标记)

2、在web.xml配置servlet:

FileServlet

FileServlet

FileServlet

com.test.fileserver.utils.FileServlet

FileServlet

/fileserver/upload

四、截图:

bdb82cd072ec5dd4afb1a362125fca2e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值