上传文件到OOS服务器

1.普通的文件上传到OSS文件服务器

上传文件到OOS服务器_第1张图片

上传文件到OOS服务器_第2张图片 

 (1)引入阿里云的OSS依赖

上传文件到OOS服务器_第3张图片


    com.aliyun.oss
    aliyun-sdk-oss
    3.10.2

(2)代码的书写。

上传文件到OOS服务器_第4张图片 

 

@RequestMapping(value = "/upload01") 
public String testUpload01(MultipartFile myFile, HttpServletRequest req){
        Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "oss-cn-hangzhou.aliyuncs.com";
        // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
        String accessKeyId = "LTAI5tE3krkEB9mCsqJrhFLv";
        String accessKeySecret = "XbCU0ADFwbE44vX37IaI4pI5RbOusS";
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "lqh12138";
        Calendar calendar=Calendar.getInstance();
        String date=calendar.get(Calendar.YEAR)+"/"+(calendar.get(Calendar.MONTH)+1)+"/"+calendar.get(Calendar.DATE);
        // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
        String objectName =date+"/"+ UUID.randomUUID().toString()+myFile.getOriginalFilename();
        // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。
        // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            InputStream inputStream = myFile.getInputStream();
            // 创建PutObject请求。
            ossClient.putObject(bucketName, objectName, inputStream);
        }catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
        String url="https://"+bucketName+"."+endpoint+"/"+objectName;
        req.setAttribute("url",url);
        return "index.jsp";
    }

2.elementui 异步上传OSS服务器

(1)前端

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title
    
    
    
    
    
    


    

(2)后端工具:

package com.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.Calendar;
import java.util.UUID;

/**
 * @Author Li Qinghua
 * @Create 2022/6/10 18:33
 */
public class OOSUpload{

    public static String upload(MultipartFile myFile){
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "oss-cn-hangzhou.aliyuncs.com";
        // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
        String accessKeyId = "LTAI5tE3krkEB9mCsqJrhFLv";
        String accessKeySecret = "XbCU0ADFwbE44vX37IaI4pI5RbOusS";
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "lqh12138";
        Calendar calendar=Calendar.getInstance();
        String date=calendar.get(Calendar.YEAR)+"/"+(calendar.get(Calendar.MONTH)+1)+"/"+calendar.get(Calendar.DATE);
        // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
        String objectName =fileName(myFile);

        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            InputStream inputStream = myFile.getInputStream();
            // 创建PutObject请求。
            ossClient.putObject(bucketName, objectName, inputStream);
        }catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
        String url="https://"+bucketName+"."+endpoint+"/"+objectName;
        return url;
    }

    private static String fileName(MultipartFile myFile){
        Calendar calendar=Calendar.getInstance();
        String date=calendar.get(Calendar.YEAR)+"/"+(calendar.get(Calendar.MONTH)+1)+"/"+calendar.get(Calendar.DATE);
        String name =date+"/"+ UUID.randomUUID().toString()+myFile.getOriginalFilename();
        return name;
    }
}

(3) controller接口

 @RequestMapping(value = "/uploadPhoto")
    @ResponseBody
    public CommentResult testUploadPhoto(MultipartFile file){
        try {
            String url = OOSUpload.upload(file);
            CommentResult result=new CommentResult(2000,"上传成功",url);
            return result;
        }catch (Exception e){
            e.printStackTrace();
        }
        CommentResult result=new CommentResult(5000,"上传失败",null);
        return result;
    }

3.保存用户信息--头像

(1)前端的布局

<%--
  Created by IntelliJ IDEA.
  User: 李青华
  Date: 2022/6/10
  Time: 19:04
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title
    
    
    
    
    
    


<%-- --%> 注册

5.(2)后台代码

package com.controller;

import com.entity.User;
import com.utils.CommentResult;
import com.utils.OOSUpload;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

/**
 * @Author Li Qinghua
 * @Create 2022/6/10 19:22
 */
@Controller
public class UserController {

    @RequestMapping(value = "/uploadPhoto")
    @ResponseBody
    public CommentResult testUploadPhoto(MultipartFile file){
        try {
            String url = OOSUpload.upload(file);
            CommentResult result=new CommentResult(2000,"上传成功",url);
            return result;
        }catch (Exception e){
            e.printStackTrace();
        }
        CommentResult result=new CommentResult(5000,"上传失败",null);
        return result;
    }

    @RequestMapping(value = "/register")
    @ResponseBody
    public CommentResult testRegister(@RequestBody User user){
        System.out.println(user);
        CommentResult result=new CommentResult(2000,"注册成功",user);
        return result;
    }
}

5.零零散散的内容

@RestController----类上等价于 @COntroller+@ResponseBody
    该注解下所有的方法都是返回json数据
    
@RequestMapping: 作用: 把请求路径映射到响应的方法上。 

@RequestParam(value = "u"):设置你接受的请求参数名。查询参数

@RequestMapping(value = "/addUser",method = RequestMethod.POST)
       method:表示该接口接受的请求方式.不设置可以接受任意请求方式。
       
@GetMapping("addUser"):表示只接受get提交方式的请求     

@RequestBody:把请求的json数据转换为java对象。从前端到后端
@ResponseBody:把java转换为json数据   从后端转前端

你可能感兴趣的:(java,服务器,开发语言)