jquery.form.js异步提交带file的表单,在IE8下出现拒绝访问的解决方法

看来我是要和文件上传纠结到底了!

先说说进化史:在一个页面上,需要放置多处点击上传的元素。如果用上传插件swfupload,一个对象只能对应一处上传,而用js点击flash触发上传是被禁止的。so,放弃插件。

然后考虑在页面上放一个iframe,iframe内部放表单,表单里放file控件,在点击上传元素时,触发该file控件的click事件。选择文件后,触发file控件的change事件,此时提交表单。做到这里有两个问题:1.如果两次上传同一个文件,第二次上传时,不会触发file.change,需要在每次上传后清空一下file,方法如下:

    var clearFile = function () {
        var file = $(":file");
        file.after(file.clone().val(""));
        file.remove();

        //复制file,事件需要重新绑定
        file.change(function () {
            $("#btnUpload").click();
        });
    };
2..net MVC框架下,上传请求的action返回json对象。返回之后页面上就孤零零的显示一个json值,不能做后续的处理。于是就考虑使用 jquery.form.js异步提交表单。
	$('#form1').ajaxForm({
            dataType: 'json',
            success: processJson
        });
这里要注意,file.change事件里,不能直接写form.submit();而是要触发submit控件的点击。

做到这里,感觉世界一片美好。谁知没多久,又遇到一个问题:IE8下上传没反应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Java 后端接受文件流和 String 类型参数的情况下,可以使用 Spring MVC 框架提供的 MultipartFile 类来处理文件上传。具体的操作步骤如下: 1. 在前端页面中,需要使用表单form)元素来实现文件上传。在表单元素中,需要设置 enctype 属性为 multipart/form-data ,以支持文件上传的数据格式。 示例代码: ``` <form action="/upload" method="post" enctype="multipart/form-data"> <label for="file">选择文件:</label> <input type="file" name="file" id="file"><br> <label for="id">ID:</label> <input type="text" name="id" id="id"><br> <input type="submit" value="提交"> </form> ``` 2. 在 Java 后端中,可以使用 @RequestParam 注解来接收表单提交的参数。其中,@RequestParam("file") 注解表示接收文件流,@RequestParam("id") 注解表示接收字符串参数。 示例代码: ``` @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile file, @RequestParam("id") String id) { // 处理文件上传的业务逻辑 // ... return "redirect:/success"; // 上传成功后跳转到指定页面 } ``` 需要注意的是,前端在提交表单时,需要使用 JavaScript 或者 jQuery 等技术来实现异步上传,以提高用户体验。 示例代码: ``` $("form").submit(function(event) { event.preventDefault(); var formData = new FormData($(this)[0]); $.ajax({ url: "/upload", type: "POST", data: formData, processData: false, contentType: false, success: function(data) { alert("上传成功"); }, error: function() { alert("上传失败"); } }); }); ``` 以上是使用 Spring MVC 框架实现文件上传的基本步骤,具体的实现方式还需要根据具体的业务需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值