Spring框架运用ajaxFileUpload

没事 来研究研究 ajaxFileUpload 这个东西

首先说明一下 ajaxFileUpload 这个是个什么东西呢

它是一个能上传文件的ajax

网上一堆说ajaxFileUpload的 不过大部分都是嵌套strus2的 我来一个Spring MVC版本的

从头说起 这个首先要加载的除了jquery-1.7.2.min.js 还有一个ajaxfileupload.js


<script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="../js/ajaxfileupload.js"></script>


然后js文件 调用的部分


    $.ajaxFileUpload({
        url:"DemoController.do?upfile",
        type:'POST',
        secureuri : false,  
        fileElementId : 'imageInfo',
        ansyn: false,
        data:{
            txt:111
        },
        dataType:'json',
        success:function(data,Status){

            alert(上传成功)

           }

   });

当然了 这些在网上一搜一大堆 这里重点说明一下“ fileElementId : 'imageInfo',”

前面 fileElementId 这个是固定写法

后面imageInfo 是标签的ID

我这里jsp的完整上传标签是这样的

<input type="file" id="imageInfo" name="imageInfo"/>


下面开始捞干的

java后台接受文件是以流的方式处理的

我亲测了好多次 公司里的例子的接受方法是

@RequestMapping(params = "upfile")
    @ResponseBody
    public Json upfile(String txt,@RequestParam(required = false)MultipartFile imageInfo){

         ..........

     }

但是断点走过来之后 发现 不但imageInfo没有值 就连txt也没有值

所以去查原因 结果发现 原来是配置文件的问题

需要加下面这样一个bean

<bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8" /> <!-- 编码 -->
        <property name="maxInMemorySize" value="10240" /> <!-- 上传时占用最大内存大小 (10240) -->
        <property name="maxUploadSize" value="-1" /> <!-- 最大文件大小,-1为无限止(-1) -->
    </bean>



好了 继续往下走

这时重启tomcat就开始报错

缺少这个类org.apache.commons.fileupload.FileItemFactory

查了好久 原来少了一个jar包

真的查了好久 不过后来百度了一下 fileItemFactory属于哪个jar包 结果一查一大堆 汗!~~

发现少了commons-fileupload 这个包(我找了一个1.2.2版本的)

再一开tomcat 果然不报错了

但是执行上传的方法就报错了 (不知道是不是只有这个方法报错)

说是缺少DeferredFileOutputStream这个类

这回我学乖了 直接百度  (你懂得)

发现少了commons-io这个包(我找了一个2.0.1版本的)


接下来 亲测可用 txt字符串 与文件流都能接收

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值