当前位置: 首页 > news >正文

做农业网站怎么赚钱会员卡营销策划方案

做农业网站怎么赚钱,会员卡营销策划方案,做网站的费用计入销售费用吗,青岛房产网二手房最新信息文章目录 这是springboot案例的,文件上传功能的拆分,本篇将带大家彻底了解文件上传功能,先从本地存储再到云存储,全网最详细版本,保证可以学会,可以了解文件上传功能的开发文件上传功能剖析进行书写一个小的文件上传文件上传的文件三要素首先表单提交的方式要是 post方式,第二个…

文章目录

  • 这是springboot案例的,文件上传功能的拆分,本篇将带大家彻底了解文件上传功能,先从本地存储再到云存储,全网最详细版本,保证可以学会,可以了解文件上传功能的开发
  • 文件上传功能剖析
  • 进行书写一个小的文件上传
  • 文件上传的文件三要素
    • 首先表单提交的方式要是 post方式,
    • 第二个enctype="multipart/form-data 这个要求
    • 第三个是在提交文件的type要选择 type="file"的方式
  • 云存储 ,进行云存储保存改造
    • 项目整合云服务存储
  • AliOssUtils的书写
    • 首先进行数据的存储地址分析


这是springboot案例的,文件上传功能的拆分,本篇将带大家彻底了解文件上传功能,先从本地存储再到云存储,全网最详细版本,保证可以学会,可以了解文件上传功能的开发

文件上传功能剖析

首先分析业务场景,文件上传功能场景,一般是修改员工信息,或者新增用户要上传的文件信息,

在这里插入图片描述
这里文件上传

这是场景分析

进行书写一个小的文件上传

先写一个html文件

在springboot项目中,在resource中,书写一个html页面

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head><meta charset="UTF-8"><title>文件上传</title>
</head>
<body>
<!--enctype="multipart/form-data"-->
<form method="post" enctype="multipart/form-data" action="/upload">姓名:<input type="text" name="username"><br>年龄:<input type="text" name="age"><br>文件:<input type="file" name="image"><br><input type="submit" value="提 交"></form></body>
</html>

这是一个表单页面代码,下面要介绍一下文件上传的前端三要素

文件上传的文件三要素

首先表单提交的方式要是 post方式,

第二个enctype="multipart/form-data 这个要求

第三个是在提交文件的type要选择 type="file"的方式

在这里插入图片描述

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head><meta charset="UTF-8"><title>文件上传</title>
</head>
<body>
<!--enctype="multipart/form-data"-->
<form method="post" enctype="multipart/form-data" action="/upload">姓名:<input type="text" name="username"><br>年龄:<input type="text" name="age"><br>文件:<input type="file" name="image"><br><input type="submit" value="提 交"></form></body>
</html>

这个是前端文件的全部代码,可以直接使用

在这里插入图片描述前端

那么书写完前端后,就可以书写后端

package com.healer.controller;import com.healer.common.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;
import java.util.UUID;/*** @author healer* @Description UploadController* @data 2024-06-01 9:35*/@RestController
@Slf4j
public class UploadController {@PostMapping("/upload")public Result uploadFile(String username, Integer age, MultipartFile image) throws IOException {log.info("文件上传.....{} {}", username, age);//        首先获取源文件String originalFilename = image.getOriginalFilename();//        使用UUID生成新文件名String uuid = UUID.randomUUID().toString();//        截取String substring = originalFilename.substring(originalFilename.lastIndexOf("."));String newFile = uuid + substring;image.transferTo(new File("D:\\images\\" + newFile));return Result.success();}
}

这个是后端的代码

在上传文件的时候会需要进行,文件名防止重复
所以这里使用UUID去生成前面的文件名
然后再获取文件名的拓展名
然后使用uuid生成的id 与拓展名进行拼接
那么就获取新的文件名
上传文件

在这里插入图片描述
在这里插入图片描述
然后就文件上传成功了

本地存储完成

没有什么业务逻辑

直接在controller层接收数据 然后保存就可以了

云存储 ,进行云存储保存改造

项目都会搭建文件存储服务,或者是使用云服务去存储文件

先进行下载依赖

然后找代码程序

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import java.io.FileInputStream;
import java.io.InputStream;public class Demo {public static void main(String[] args) throws Exception {// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();// 填写Bucket名称,例如examplebucket。String bucketName = "examplebucket";// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。String objectName = "exampledir/exampleobject.txt";// 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。// 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。String filePath= "D:\\localpath\\examplefile.txt";// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);try {InputStream inputStream = new FileInputStream(filePath);// 创建PutObjectRequest对象。PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);// 创建PutObject请求。PutObjectResult result = ossClient.putObject(putObjectRequest);} catch (OSSException oe) {System.out.println("Caught an OSSException, which means your request made it to OSS, "+ "but was rejected with an error response for some reason.");System.out.println("Error Message:" + oe.getErrorMessage());System.out.println("Error Code:" + oe.getErrorCode());System.out.println("Request ID:" + oe.getRequestId());System.out.println("Host ID:" + oe.getHostId());} catch (ClientException ce) {System.out.println("Caught an ClientException, which means the client encountered "+ "a serious internal problem while trying to communicate with OSS, "+ "such as not being able to access the network.");System.out.println("Error Message:" + ce.getMessage());} finally {if (ossClient != null) {ossClient.shutdown();}}}
} 

只需要再上面修改你的oss信息就可以使用
进行测试
测试通过就可以使用

项目整合云服务存储

项目整合阿里云oss,第一步需要进行改造为工具类

首先分析,在上传文件,上传成功之后需要返回图片的url地址

所以返回值是string类型

然后要分析图片的地址
进行封装

https://tailsdemo01.oss-cn-beijing.aliyuncs.com/1.png

首先第一部分是 https://
然后是 bucketName
然后是.oss-cn-beijing.aliyuncs.com
然后是 /
然后是文件的名字
使用工具类进行封装

那么上传文件肯定是上传一个 multitypeFile类型

MultipartFile image

    @PostMapping("/upload")public Result uploadFile(MultipartFile image) throws Exception {String upload = aliOssUtil.upload(image);return Result.success(upload);}

在这里插入图片描述
返回的data就可以存储在数据库中,那么用户可以直接通过iamge的标签进行查询到数据内容

AliOssUtils的书写

首先这个工具类是基于实例代码进行改写

package com.healer.utils;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;import java.io.FileInputStream;
import java.io.InputStream;
import java.util.UUID;/*** @author healer* @Description AliOssUtil* @data 2024-06-01 15:23*/@Component
public class AliOssUtil {String endpoint = "";String accessKeyId = "";String accessKeySecret = "";String bucketName = "";public String upload(MultipartFile multipartFile) throws Exception {String originalFilename = multipartFile.getOriginalFilename();String objectName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);try {InputStream inputStream = multipartFile.getInputStream();// 创建PutObjectRequest对象。PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);// 创建PutObject请求。PutObjectResult result = ossClient.putObject(putObjectRequest);} finally {if (ossClient != null) {ossClient.shutdown();}}//            String endpoint = "https://oss-cn-beijing.aliyuncs.com";//        https://tailsdemo01.oss-cn-beijing.aliyuncs.com/1.pngreturn endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + objectName;}}

那么就几个点

首先第一个点
这个方法需要返回值

首先进行数据的存储地址分析

在这里插入图片描述
https://tailsdemo01.oss-cn-beijing.aliyuncs.com/1.png

首先第一部分是 https://
然后是 bucketName
然后是.oss-cn-beijing.aliyuncs.com
然后是 /
然后是文件的名字
使用工具类进行封装

//这个是获得文件原始名字
String originalFilename = multipartFile.getOriginalFilename();
然后进行改造

 String objectName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));

新名字
使用UUID进行生成前缀,可以确保没有重复
然后再使用文件的后缀

之后就获得新名字,然后上传阿里云

文件的内容是将这个文件先转为inputStream
multipartFile.getInputStream();
文件的传输都是multipartFile 类型
所以可以一步拿到 inputStream流
然后就直接塞到方法里面

工具类更改完毕,可以直接用了

可以将这个工具类交给springIOC容器
让spring去管理
我们直接拿到工具类的代理对象就可以
那么在controller中

    @PostMapping("/upload")public Result uploadFile(MultipartFile image) throws Exception {String upload = aliOssUtil.upload(image);return Result.success(upload);}

至此,功能完毕,完结

http://www.hengruixuexiao.com/news/5059.html

相关文章:

  • 老外做汉字网站百度新闻客户端
  • wordpress 页面改造江北seo
  • 品牌运营和品牌推广上海正规seo公司
  • 如何在个人电脑用源码做网站如何做好宣传推广
  • js网站模板下载图床外链生成工具
  • 网站备案照片搜索引擎营销的内容有哪些
  • 网站开发环境 对比网址浏览大全
  • 网站建设到本地知识搜索引擎
  • 用花生棒自己做网站深圳网站seo推广
  • 下载学校网站模板淘宝网络营销方式
  • 北京网站设计服务商外贸推广平台排名
  • 帮别人做网站规划百度软件商店
  • abcd设计公司长沙seo优化推广
  • 专业做网站的顺德公司网站推广优化业务
  • 个人如何接网站建设订单seo上海优化
  • 优秀网页模板seo推广排名重要吗
  • 需要申请域名购买空间做网站测试吗百度推广登陆网址
  • 安徽方圆建设有限公司网站百度seo搜索营销新视角
  • 做足彩网站推广2021年10月新闻摘抄
  • 移动端布局seo推广外包企业
  • 做网站就用建站之星推特最新消息今天
  • 入门 做网站 书籍武汉seo软件
  • 微企推seo查询工具有哪些
  • 网站建设页面页脚怎么设置培训机构网站设计
  • 南昌购物网站开发app开发公司排行榜
  • 设计专业网站有哪些b站推广软件
  • 基层政府门户网站建设的问题出售友情链接是什么意思
  • 咪咕动态网站怎么做他达拉非什么是
  • 网站开发顶岗报告产品营销策略怎么写
  • 做壁画在哪个网站免费推广网站平台