spring boot+angularjs实现文件上传

本文介绍了一个使用SpringBoot实现文件上传的例子。通过@Controller注解定义了处理文件上传请求的方法,并利用MultipartHttpServletRequest获取上传文件。服务层实现了文件的保存,包括处理文件名、存储路径及更新数据库。

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

spring boot实现文件上传

controller:

@RequestMapping(value = "/{id}/upload-change-type", method = POST)
    @ResponseBody
    public void uploadChangeFile(@PathVariable long id,MultipartHttpServletRequest req) {
        try {
            service.uploadChangeFile(id,req.getFile("changeFile").getInputStream(),req.getFile("changeFile").getOriginalFilename());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

service:

public void uploadChangeFile(long id, InputStream in,String fileName) throws IOException {
        StatusChangeType sct = statusChangeTypeRepo.findById(id);
        String suffix = fileName.substring(fileName.lastIndexOf(".")+1);
        File file = fileService.getFileOfChange(sct,suffix);    
        if(file.exists())
            file.delete();
        FileUtils.copyInputStreamToFile(in, file);
    }

fileService.getFileOfChange(sct,suffix);

 public File getFileOfChange(StatusChangeType sct,String suffix) {
        File dir = FileUtils.
                getFile(getTEMP_SUBDIR());
        if(!dir.exists()) {
            dir.mkdirs();
        }   
        String fileName = sct.getId().toString()+"-"+sct.getMajor()+"-"+sct.getMinor()+"."+suffix;
        File ret = new File(dir,fileName);
        sct.setChangeFile(dir+"\\"+fileName);
        statusChangeTypeRepo.save(sct);
        return ret;     
    } 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值