Java上传图片的方法

本文介绍了使用Java进行图片上传的操作步骤,重点讲解如何通过流获取文件进行上传。

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

Java上传图片的方法

// controller 接受请求对应的方法 第一步
if (request.getHeader("content-type") != null && "application/x-www-form-urlencoded".equals(request.getHeader("content-type"))) {
            // 不支持断点续传,直接返回null即可
            return null;
        }
        return garbageInspectService.setInsertMentsCriterias(request);
  • 第二步通过流获取文件
try {
            XsMentsCriterias xsMentsCriterias= JSON.parseObject(request.getParameter("xsMentsCriterias"),XsMentsCriterias.class);
            int i=0;
            request.setCharacterEncoding("utf-8");
            CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
            if (multipartResolver.isMultipart(request)){
                // 通过 request 获取 上传的文件
                MultipartHttpServletRequest murequest = (MultipartHttpServletRequest) request;
                // 获取文件名集合放入迭代器
                Iterator<String> files = murequest.getFileNames();
                //获取用户信息
                String username = UserUtils.nickname();
                String userId = UserUtils.userId();
                xsMentsCriterias.setLssuedId(userId);
                xsMentsCriterias.setLssuedUser(username);
                i = xsMentsCriteriasMapper.insertSelective(xsMentsCriterias);
                while (files.hasNext()) {
                    // 获取上传文件的对象
                    MultipartFile mFile = murequest.getFile(files.next());
                    if (mFile != null&&!mFile.isEmpty()) {
                        Boolean b=carInspectRecordService.fileUpload(mFile,xsMentsCriterias.getId().toString(),3);
                        if(!b){
                            return new ResponseBodyVo(500,"附件上传失败",false);
                        }
                    }
                }
            }
            if(i==0){
                throw new PlatformException("考核标准插入失败");
            }
            return new ResponseBodyVo(200,"考核标准插入成功",true);
        } catch (Exception e) {
            return new ResponseBodyVo(500,"考核标准入失败:"+e.getMessage(),false);
        }
/**
     * @Description: 上传附件并写入附件记录
     * @Param:  file 附件   sid 业务表主键
     * @return:
     * @author: 
     * @Date: 
     */
    public  Boolean fileUpload(MultipartFile file,String sid,Integer sType) {
        String path="/home/ljfltp";
        if(sType==3){
            path="/home/ljflwd";
        }
        Date date=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy");
        SimpleDateFormat sdf1=new SimpleDateFormat("MM");
        SimpleDateFormat sdf2=new SimpleDateFormat("dd");
        path+="/"+sdf.format(date)+"/"+sdf1.format(date)+"/"+sdf2.format(date);
        long dt = System.currentTimeMillis();
        String fileName =  dt+ "." + getExtensionName(file.getOriginalFilename());
        File dir = new File(path);
        if(!dir.exists()){
            dir.mkdirs();
        }
        BufferedOutputStream stream = null;
        try {
            byte[] bytes = file.getBytes();
            stream = new BufferedOutputStream(new FileOutputStream(
                    new File(dir+"/"+fileName)));
            stream.write(bytes);
            stream.close();
        } catch (Exception e) {
            return false;
        }
        //获取用户信息
        String username = UserUtils.nickname();
        String userId = UserUtils.userId();
        //附件表插入附件记录
        XsCarInspectFile xsCarInspectFile=new XsCarInspectFile(sid,fileName,
                path+"/"+fileName,getExtensionName(file.getOriginalFilename()),file.getOriginalFilename(), username, userId, sType);
        int a=xsCarInspectFileMapper.insertSelective(xsCarInspectFile);
        if(a==1){
            return true;
        }else {
            return false;
        }
    }
    /**
     * 获取文件扩展名
     *
     * @param filename
     * @return
     */
    public static String getExtensionName(String filename) {
        if ((filename != null) && (filename.length() > 0)) {
            int dot = filename.lastIndexOf('.');
            if ((dot > -1) && (dot < (filename.length() - 1))) {
                return filename.substring(dot + 1);
            }
        }
        return filename;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值