怎样实现头像文件上传的模块(后端java)

一、文件上传(存储到本地磁盘)

(一)前端

<form action="/upload" method="post" enctype="multipart/form-data">
    头像:<input type="file" name="image"> <br>
    <input type="submit" value="提交">
</form>

前端页面三要素

(二)后端

String getOriginalFilename();//获取原始文件名
void transferTo(File dest);//将接受的文件转存到磁盘文件中
long getSize();//获取文件的大小,单位:字节
byte[] getBytes();//获取文件内容的字节数组
InputStream getInputStream();//获取接收到的文件内容的输入流

后端MultipartFile

(三)实现(会产生文件覆盖)

在controller包里面创建一个java文件FileUploadController(文件上传)

@RestController
public class FileUploadController {

    @PostMapping("/upload")
    public Result<String> upload(MultipartFile file) throws IOException {
    
        //把文件的内容存储到本地磁盘上
        String originalFilename = file.getOriginalFilename();
        file.transferTo(new File("要存到的文件路径"+originalFilename));
        return Result.success("url访问地址...");
    
    }
}

记得在要存到文件路劲的时候最后要加\\,这样才能把文件存到想存到的文件夹里面

例如:D:\\桌面\\file\\

(四)实现(解决文件覆盖)

在controller包里面创建一个java文件FileUploadController(文件上传)

@RestController
public class FileUploadController {

    @PostMapping("/upload")
    public Result<String> upload(MultipartFile file) throws IOException {
    
        //把文件的内容存储到本地磁盘上
        String originalFilename = file.getOriginalFilename();
        //保证文件的名字是唯一的,从而防止文件覆盖
        String filename = UUID.randomUUID().toString()+originalFilename.substring(
        originalFilename.lastIndexOf("."));
        file.transferTo(new File("要存到的文件路径"+originalFilename));
        return Result.success("url访问地址...");
    
    }
}

二、文件上传(上传到云端服务器)

云端:通俗来说就是互联网上有很多的计算机,计算机提供很多服务比如:云计算、云短信、云存储;提供这些服务的公司有:阿里巴巴(国内最大的云服务提供商)、华为、百度、网易等。

阿里云OSS:阿里云对象存储OSS(Object Storage Service),是一款海量、安全、低成本、高可靠的云存储服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的文件。

(一)第三方服务-通用思路

1.准备工作2.参照官方SDK(Software Development Kit,软件开发工具包)3.集成使用

注册登录(实名认证)---- 充值 --- 开通对象存储服务(OSS)--- 创建bucket --- 获取AccessKey(秘钥)--- 参照官方SDK编写入门程序 --- 案例集成OSS

创建阿里云完成过后,在阿里云里面安装SDK,因为我是写项目,可以直接通过Maven项目加入依赖。阿里云依赖坐标如下:

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.15.1</version>
</dependency>

具体修改过程可以参考相关网上的资源。 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值