SpringBoot结合angularjs表单上传文件

博客包含前端AngularJS代码和后端Java的Spring Boot代码,其中Spring Boot自带文件上传功能可直接使用,聚焦于前后端开发相关信息技术内容。

前端代码:

<form id="form_upload">
        <input id="upload_img_id" type="file" name="fileName"/>
        <button ng-click="uploadFile()" type="button">
        上传
        </button>
</form>

angularjs代码

this.uploadFile = function(){
        //重点1:form_upload是form表单的id
        var formData = new FormData(document.getElementById("form_upload"));
        //重点2:upload_img_id是文件input的id
        var file = document.getElementById("upload_img_id").files[0];
        //重点3:向formData中添加数据:
        formData.append("file",file);

        //下面是angularjs的代码,可以换成其他前端代码实现,重点是formData上传
        return $http({
            method:'post',
            url:'/seller/fileload/uploadFile.do',
            data:formData,
            headers:{'Content-Type':undefined} ,// Content-Type : text/html  text/plain
            transformRequest:angular.identity
            //浏览器会帮我们把Content-Type 设置为 multipart/form-data.
        });
    }

端java代码(SpringBoot的),SpringBoot自带文件上传,可以直接用

//重点4:@RequestParam("fileName")这个跟前端的input标签的name一致
@RequestMapping(value = "uploadFile.do", method = RequestMethod.POST)
    @ResponseBody
    public String fileUpload(@RequestParam("fileName") MultipartFile file){
        System.out.println(file.getOriginalFilename()+">>>>>>>>>");
        if(file.isEmpty()){
            return "false";
        }
        String fileName = file.getOriginalFilename();//z.png
        int size = (int) file.getSize();
        //fileName=fileName.substring(fileName.lastIndexOf("\\")+1);

        String path = System.getProperty("user.dir");//   /Users/apple/Desktop/IDEAWORKSPACE/day2/shoppingmall2
        File dest = new File(path+"/target/classes/static/img" + "/" + fileName);
        if(!dest.getParentFile().exists()){ //判断文件父目录是否存在
            dest.getParentFile().mkdir();
        }
        try {
            file.transferTo(dest); //保存文件
            return "{\"img_path\":\"http://localhost:8080/img/"+fileName+"\"}";
        } catch (IllegalStateException e) {
            e.printStackTrace();
            return "false";
        } catch (IOException e) {
            e.printStackTrace();
            return "false";
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值