图片的上传

本文介绍了一种适用于单张图片上传的JavaScript函数subFile2(),该函数用于检查并提交图片上传请求。同时,详细展示了如何在后端使用MultipartHttpRequest处理上传的图片,包括获取图片、读取字节、解析文件名、确定存储路径及保存到服务器。
摘要由CSDN通过智能技术生成

这种不适合ajax操作 ,只适合单张图片的上传

//活动图片下部图片上传
function subFile2(){
     var file = document.getElementById('file3');
    if (file.value == "") {
          alert("请选择您需要上传的背景图片!");
      }else{
         var plantId=$(".plantId").val();
         var selVal= $(".activityTypeId").val();
         var activityId=$(".activityId").val();
         var packageId=$(".packageId").val();
         var f = document.getElementsByTagName("form")[0];
         var packageAmount=$(".packageAmount").val();
        f.action=f.action+"&plantId="+plantId+"&selVal="+selVal+"&activityId="+activityId+"&packageAmount="+packageAmount;
         f.submit();
         top.closeMD(true);
    }
}

后台代码

//转型为MultipartHttpRequest(重点的所在)  
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        // 获得第1张图片(根据前台的name名称得到上传的文件)   
        MultipartFile multipartFile  =null;
        if("1".equals(String.valueOf(activityTypeId))){
             multipartFile  =  multipartRequest.getFile("aa");
        }else if("2".equals(String.valueOf(activityTypeId))){
            if("1".equals(uploadPhotoType)){
                   multipartFile  =  multipartRequest.getFile("bb");
            }else{
                   multipartFile  =  multipartRequest.getFile("cc");
            }
        }
        byte[] bytes =  multipartFile.getBytes();
          
          String fileExt = "";// 后缀名
          String oldName = "";// 原文件名称
          String name = multipartFile.getOriginalFilename();
            // 扩展名格式:
            int lastIndex = name.lastIndexOf(".");
            if (lastIndex >= 0) {
                fileExt = name.substring(lastIndex + 1);
                oldName = name.substring(0, lastIndex);
            }
        String userRealPath=null;//真正路径
        File originalfile = null;
        String serverRealPath = SystemConfiguration.getImageServerRealPath(ado);//真正的路径
        String domain = SystemConfiguration.getImageDomain(ado);
        if("1".equals(String.valueOf(activityTypeId))){
             userRealPath = "/images/plantActivity/"+plantId+"/"+activityTypeId+"/"+oldName+"."+fileExt;// 上传活动背景图片的路径
        }else if("2".equals(String.valueOf(activityTypeId))){
            if("1".equals(uploadPhotoType)){
                 userRealPath = "/images/plantActivity/"+plantId+"/"+activityTypeId+"/topImg."+fileExt;//上传活动背景上部图片的路径
            }else{
                userRealPath="/images/plantActivity/"+plantId+"/"+activityTypeId+"/activeImg1."+fileExt;//套餐图片路径
            }
        }
    
        File dir = new File(serverRealPath + userRealPath);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        // 生成文件名:serverRealPath + userRealPath
        originalfile = new File(serverRealPath + userRealPath);
        try {
            multipartFile.transferTo(originalfile);// 写到磁盘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值