Struts2 +jquery+ajaxfileupload 实现无刷新上传图片

在网上看了很多关于Struts2+jquery+ajaxfileupload无刷新上传图的!但是遇到一个问题就是在我在jquery中ajaxFileUpload方法去无刷新上传!

返回json数据的时候老是出问题!说是在contentType参数是一定要有的,否则浏览器总是提示将返回的JSON结果另存为文件,不会交给ajaxfileupload处理。这是因为struts2 JSONPlugin默认的contentType为application/json,而ajaxfileupload则要求为text/html。

所以在struts.xml中去配置

<package namespace="/upload" name="uploadprductlogoaction" extends="json-default">
        <action name="uploadLogoAction" class="merchantProductLogoAction"
            method="uploadProductLogo">
            <result type="json" name="success">
                <param name="contentType">
                    text/html
                </param>
            </result>
            <result type="json" name="error">
                <param name="contentType">
                    text/html
                </param>
            </result>    
        </action>
    </package>

在ajaxFileUpload方法返回json
数据

$.ajaxFileUpload ({
                url:"uploadLogoAction.action",
                secureuri:false,
                fileElementId:"productLogo",
                dataType:"json",
                success:function(data,status){
                    alert(data);
                },error:function(data,status,e){
                    alert(e);
                }
            });

但是还是出现上一个问题后查看说ajaxFileUpload返回的必须只有text或xml格式的!我在ajaxFileUpload方法更改成

$.ajaxFileUpload ({
                url:"uploadLogoAction.action",
                secureuri:false,
                fileElementId:"productLogo",
                dataType:"text",
                success:function(data,status){
                    alert(data);
                },error:function(data,status,e){
                    alert(e);
                }
            });

在struts.xml中如下写

<package namespace="/upload" name="uploadprductlogoaction" extends="struts-default">
        <action name="uploadLogoAction" class="merchantProductLogoAction"
            method="uploadProductLogo">
        </action>
    </package>

但是这样在ajaxFileUpload返回的是一个text格式的!在根据data = jQuery.parseJSON(jQuery(data).text());这样data就是json格式的!

这样我要的返回json就正确的得到了!希望对与我遇到同样问题的朋友有些帮助.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值