java异步上传文件(方式二)

通过H5的FormData实现Java异步文件上传,关注浏览器兼容性问题。前端利用JS进行文件选择和提交,后台接收并处理上传请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以使用H5的FormData来实现异步文件上传,注意浏览器的兼容性。
使用这种方式请确保JSP基于H5。
前端代码如下:

<form id="ff" enctype="multipart/form-data" method="post" action="upload/testUpload">
    <input id="file" type="file" name="file"  multiple="multiple"/><br/>
    <input type="button" value="使用FormData" onclick="formDataSubmit()" />
</form>

js代码如下:

<script>
    function formDataSubmit(){
        var form = document.getElementById('ff');  
        var formdata = new FormData(form);  
        $.ajax({
            type: "POST",
            url:"upload/formDataSubmit",
            data:formdata,
            async: false, //禁止异步往下执行,默认是true
            contentType : false,  //禁止jQuery设置Content-Type请求头 信息
            processData : false,  //禁止jQuery处理请求的数据
            success: function(data) {
                if(data == 'true'){
                    alert("成功!");
                }else{
                    alert("失败!");
                }
            }
        });
    }
</script>

后台代码如下:

//使用formData
    @RequestMapping("/formDataSubmit")
    @ResponseBody
    public String formDataSubmit(@RequestParam(value = "file", required = false) MultipartFile file,
            HttpSession session) {
        if (!file.isEmpty()) {
            try{
                   String path = session.getServletContext().getRealPath("/upload/");  //获取本地存储路径
                   String fileName = file.getOriginalFilename();
                   String fileType = fileName.substring(fileName.lastIndexOf(".")); //获取后缀名
                   String newName=new Date().getTime() + fileType;
                   File file2 = new File(path,newName); //新建一个文件
                   file.transferTo(file2);
                }catch(Exception e){
                    return "false";
            }
        }
        return "true";
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值