ajaxupload.js java_Spring MVC 结合Ajax实现文件上传(使用ajaxfileupload.js)

本文地址:http://www.dutycode.com/post-6.html

除非注明,文章均为 www.dutycode.com 原创,欢迎转载!转载请注明本文地址,谢谢。

SpringMVC实现文件上传,直接上代码:

后台代码:

@RequestMapping(value = "/uploadApk")

@ResponseBody

public Object uploadApk(

@RequestParam(value = "apkFile") MultipartFile apkFile,

HttpServletRequest request, HttpServletResponse response) {

Map resMap = new HashMap();

if (apkFile != null) {

//获取保存的路径,

String realPath = request.getSession().getServletContext()

.getRealPath("/upload/apk");

if (apkFile.isEmpty()) {

// 未选择文件

resMap.put("status", StatusConstants.STATUS_PARM_IS_EMPTY);

} else{

// 文件原名称

String originFileName = apkFile.getOriginalFilename();

try {

//这里使用Apache的FileUtils方法来进行保存

FileUtils.copyInputStreamToFile(apkFile.getInputStream(),

new File(realPath, originFileName));

resMap.put("status",StatusConstants.STATUS_OK);

} catch (IOException e) {

System.out.println("文件上传失败");

resMap.put("status", StatusConstants.STATUS_EXECPTION);

e.printStackTrace();

}

}

}

return resMap;

}

Spring配置文件中需要添加如下内容:

error_fileupload

jsp页面内容(这里结合的EasyUi的一些内容):

function ajaxFileUpload(){

//获取软件更新详情

var apkIntroduce = $("#apkInfo").val();

//开始上传文件时显示一个图片,文件上传完成将图片隐藏

//$("#loading").ajaxStart(function(){$(this).show();}).ajaxComplete(function(){$(this).hide();});

//执行上传文件操作的函数,使用encodeURI方法,防止传输中文字符的时候出现乱码

var uploadUrl = encodeURI(encodeURI(basePath + "uploadApk.do?apkIntroduce="+apkIntroduce));

$.ajaxFileUpload({

//处理文件上传操作的服务器端地址(可以传参数,已亲测可用)

url:uploadUrl,

// url:basePath + "uploadApk.do?apkIntroduce="+apkIntroduce,

secureuri:false, //是否启用安全提交,默认为false

fileElementId:'apkFile', //文件选择框的id属性

dataType:'text', //服务器返回的格式,可以是json或xml等

success:function(data, status){ //服务器响应成功时的处理函数

data = data.replace("

", '');  //ajaxFileUpload会对服务器响应回来的text内容加上
text
前后缀

data = data.replace("

", '');

data = data.replace("

", '');

data = data.replace("

", ''); //本例中设定上传文件完毕后,服务端会返回给前台[0`filepath]

//将String字符串转换成json

var dataset = $.parseJSON(data);

if(dataset.status == "ok"){

$('#result').html("Apk上传成功
");

$.messager.alert("提示","上传成功");

//关闭添加窗口

addApkWindow.window('close');

//刷新页面

datagrid.datagrid('reload');

}else if ( dataset.status == "parm_is_empty"){

$('#result').html("没有选择APK!");

}else {

$('#result').html('Apk上传失败,请重试!!');

}

},

error:function(data, status, e){ //服务器响应失败时的处理函数

console.log(e);

console.log(data);

$('#result').html('APK上传失败,请重试!!');

}

});

}

Html页面代码:

软件更新详情:


上传文件:

上面的JSP代码中,使用到了JS中的encodeURI方法,这个的目的是为了防止在传递中文参数时的乱码问题,当然,如果只传文件的话,则没有必要使用encodeURI

参考网址:

PS :更新于 2015-03-31

感谢『XL鹰』的补充--》

注意;

dataType:'text', //服务器返回的格式,可以是json或xml等

这里改成了text不要用json,会有问题,这里改成text后,下面的date就不需要转换了

http://www.oschina.net/question/107380_151555?sort=default&p=2

这里有一条评论讲的很好

sea_wind 为他的用户名,树袋熊的图标的用户讲的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值