小程序 上传单个图片

本文介绍了一个小程序中实现图片上传功能的方法,并详细展示了使用SSM框架处理上传文件的后端代码。通过wx.chooseImage和wx.uploadFile API选择并上传图片至服务器,后端采用SpringMVC接收文件并保存至指定目录。

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

小程序界面

shangchuan:function()

{

var that = this

// 上传图片 获取路径

wx.chooseImage({

success: function (res) {

console.log('临时路径:' + res.tempFilePaths[0])

console.log(res.tempFilePaths[0].split("/")[3]);

var imgName = res.tempFilePaths[0].split("/")[3];

console.log(res);

that.setData({

imgurl: res.tempFilePaths[0]

});

wx.uploadFile({

url: 'http://localhost:8080/chapter16-shu/uploadFile',

filePath: res.tempFilePaths[0],

name: 'file',

formData:{

'name': imgName

},

success: function (result) {

console.log("返回路径:" + result.data)

}

})

},

})

 

},

 

SSM框架主要代码


      //上传文件3
      @RequestMapping("/uploadFile") 
      @ResponseBody
      public Object uploadFile(HttpServletResponse response, HttpServletRequest request, MultipartFile file) { 
        
              
        String realPath = request.getSession().getServletContext().getRealPath("/temp"); 
        //System.out.println(realPath);
        File file1 = new File(realPath);  
        if(!file1.exists()){  
            file1.mkdirs();  
        } 
        
       
        
        
        
        try { 
          CommonsMultipartFile cf = (CommonsMultipartFile) file; 
          DiskFileItem fi = (DiskFileItem) cf.getFileItem(); 
          File f1 = fi.getStoreLocation(); 
           if(!f1.exists()){  
               f1.mkdirs();  
            } 
          
          InputStream ips = new FileInputStream(f1); 
          OutputStream ops = new FileOutputStream(realPath + "/" + request.getParameter("name")); 
          byte[] b = new byte[1024]; 
          int len; 
          try { 
            while ((len = ips.read(b)) != -1) { 
              ops.write(b, 0, len); 
            } 
          } catch (IOException e) { 
            e.printStackTrace(); 
          } finally { 
            // 完毕,关闭所有链接 
            try { 
              ops.close(); 
              ips.close(); 
            } catch (IOException e) { 
              e.printStackTrace(); 
            } 
          } 
      
        } catch (FileNotFoundException e) { 
          e.printStackTrace(); 
        } 
        return realPath; 
      } 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞飞翼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值