webuploader实现多文件上传

问题:

 

 1: 上传失败,不知道怎么在服务端写返回值?

 

 2: 做个多文件上传怎么办?

 

 1:上传失败,不知道怎么在服务端写返回值?

 

(1):首先在初始化Web Uploader  的方法写上

 

server: 'http://localhost:8088/a/oa/oaNotify/uploadFile'  写上服务端请求的地址
Controller 层可以写:
@RequestMapping(value = "form")  请求接收  
也可以用异步AJAX请求接收
@RequestMapping(value = "save")
@ResponseBody
但是需要注意的是如果是非异步调用的话需要返回的地址是你webupload控件页面的地址,不然会一直上传失败!

 

 

 

这样不写返回值是铁定报错的!

 

需要写成

 

@RequestMapping(value = "uploadFile")
public String uploadFile(){
   return "返回值写的是webupload控件的页面地址";
}
这样第一个问题解决了。不会在上传失败了!

 

2:做个多文件上传怎么办?

 

找了好多资料百度搜了很多问题,发现都没能解决!

 

因为webupload 插件是:比如当你选中4个文件,开始点击上传他是一个一个文件请求调用接口的!!!

 

 

 

这样的话,如果我数据库就一个字段保存文件的路径用 ,  进行分割如:123.jsp,2123.txt   这里写的是两个文件的路径,问题是他一个文件调用一次接口,那样的话要从数据库或者缓存中获取到该字段的数据在插入在保存,这样肯定是不行的!!!!!!!看着文档API试过  multiple 这个属性  结果代表的是在点击选择文件的时候是否允许同时选中多个文件的意思

 

pick: {
    id: '#filePicker',
    label: '点击选择文件',
    //  是否开启同时选中多个文件的能力 
    multiple:false
},
threads {Boolean} [可选] [默认值:3]  上传并发数。允许同时最大上传进程数

 

这个API应该是写错了  并不是boolean 类型的 而是int  直接指定 如  threads:1  这样

 

4个文件点击上传,debug拦截的时候,其实只是拦截了其中1个,其他3个在你debug的时候也在请求这个接口。也算是理解了并发这两个字了

 

                           我的解决方法是

 

1:把接口写成

 

@RequestMapping(value = "uploadFile")
@ResponseBody
public AjaxJson uploadFile(HttpServletRequest request){
   AjaxJson ajaxJson = new AjaxJson();
   //   记得在保存时候  在字段 路径的尾巴加上标记如  file.txt,
   String fileUri=  //保存附件到本地或者服务器上   返回文件的URI  地址
   ajaxJson.setSuccess(true);
   ajaxJson.put("fileUri",fileUri);
   return  ajaxJson;
}
 
在前端写个隐藏input  标签   
<input type="hidden" id="fileUri" name="accessory">
2:通过uploadSuccess这个事件,从response获取到我们传回前端的数据

 

uploader.on('uploadSuccess',function (file,response) {
    //  获取input的值
    var fileUri = $("#fileUri").val();
    //  获取文件的地址
    var beforeUri = response.body.fileUri;     // 获取后端保存的文件地址
    //  保存在input标签里面
    $("#fileUri").val(fileUri+beforeUri);
})
3:这样每次调用后端接口成功后,都会触发这个事件,在保存在隐藏的hidden标签内。

 

在点击提交的时候一并把多附件路径一起提交保存在这个对象的fileUri字段中  用 , 逗号分隔

 

文件1,文件2,文件3,文件4,

 

4:取出来的时候通过 

String uri = "文件1,文件2,文件3,文件4,";
String[] fileUris = uri.split(",");
这样就可以去回多个文件的地址了,问题解决完了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值