Java微信小程序oss图片上传的实现方法

先将图片上传到服务器,再将服务器上的图片传入oss中

小程序js

 //启动上传等待中...
    wx.showToast({
     title: '正在上传...',icon: 'loading',mask: true,duration: 10000
    })
    //上传图片
    wx.uploadFile({
     url: '***********',//上传的路径(Java后台路径)
     filePath: tempFilePaths[0],name: 'file',success: function (res) {
      console.log(res.data)//oss图片路径
      wx.showToast({
       title: "上传成功",icon: 'success',duration: 1000
      })
     },fail: function ({ errMsg }) {
      wx.showToast({
       title: "上传失败",})

Java后台

@RequestMapping("/programImg")
public @ResponseBody String programImg(@RequestParam(required = false) multipartfile file,HttpServletRequest request) {
 File targetFile=null;
    String str="";//返回存储路径
    String fileName=file.getoriginalFilename();//获取文件名加后缀
    if(fileName!=null&&fileName!=""){
      String returnUrl = ”*****“;//服务器存储路径
      String fileF = FilenameUtils.getExtension(file.getoriginalFilename());//文件后缀
      fileName=”*****************“;//新的文件名
      //先判断文件是否存在,获取文件夹路径
      File file1 =new File(returnUrl);
      //如果文件夹不存在则创建
      if(!file1 .exists() && !file1 .isDirectory()){
        file1 .mkdir();
      }
      //将图片存入文件夹
      targetFile = new File(file1,fileName);
      try {
       //将上传文件写到服务器上指定的文件。
       file.transferTo(targetFile);
        String gifName = "******";//图片oss上传根目录
        String url=gifName+"/"+fileName;
        putObject(targetFile,gifName,fileName);
        str=““;//oss图片路径
      } catch (Exception e) {
        e.printstacktrace();
      }
    }
    return str;
 }
public static void putObject(File file,String fileName,String fileName){
 OSSClient ossClient=null;
 try {
  //初始化oss
  ossClient = ossIni();
  //上传路径
  String route=fileName+"/"+fileName;
  //上传图片 img-program--Bucket名称
  ossClient.putObject("img-program",route,file);
 } catch (Exception e) {
  if (ossClient!=null) {
  ossClient.shutdown();
  }
  e.printstacktrace();
 }
 ossClient.shutdown();
 }
private static OSSClient ossIni(){
 OSSClient ossClient = null;
 try {
  ossClient = new OSSClient(ENDPOINT,KEY_ID,KEY_SECRET);
  System.out.println("oss 初始化成功");
 } catch (Exception e) {
  e.printstacktrace();
 }
 return ossClient;
}
public static final String ENDPOINT="****************";
public static final String KEY_ID="*****************";
public static final String KEY_SECRET="****************";

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...