中文小说网站建设与维护手机开发游戏的软件

张小明 2026/1/10 18:55:51
中文小说网站建设与维护,手机开发游戏的软件,专业的外贸网站建设公司,网站开发工具概述与比较OSS 文件上传流程详解以下是基于提供代码实现的 OSS 文件上传完整流程#xff0c;包含配置、核心代码及步骤说明#xff1a;一、前期准备阿里云 OSS 配置需在阿里云控制台创建 Bucket#xff0c;获取endpoint、accessKeyId、accessKeySecret和bucketName配置文件位置#x…OSS 文件上传流程详解以下是基于提供代码实现的 OSS 文件上传完整流程包含配置、核心代码及步骤说明一、前期准备阿里云 OSS 配置需在阿里云控制台创建 Bucket获取endpoint、accessKeyId、accessKeySecret和bucketName配置文件位置src/main/resources/oss.propertiesproperties# oss.properties配置示例 aliyun.oss.endpointoss-cn-beijing.aliyuncs.com aliyun.oss.accessKeyIdLTAI5tGRHc12i6A4ZEnrUaRR aliyun.oss.accessKeySecretEEeB0vBuvmDlXK1fkX2cBMWcsztlx0 aliyun.oss.bucketNamezjc-java-spring二、核心组件配置OSS 客户端配置OssConfig.javajava运行Configuration public class OssConfig { // 从配置文件注入OSS连接参数 Value(${aliyun.oss.endpoint}) private String endpoint; Value(${aliyun.oss.accessKeyId}) private String accessKeyId; Value(${aliyun.oss.accessKeySecret}) private String accessKeySecret; // 创建OSS客户端实例并交给Spring管理 Bean(destroyMethod shutdown) public OSS ossClient() { return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); } }文件上传工具类OssUtils.javajava运行Component public class OssUtils { Autowired private OSS ossClient; Value(${aliyun.oss.bucketName}) private String bucketName; Value(${aliyun.oss.endpoint}) private String endpoint; /** * 文件上传到OSS * param file 要上传的文件 * param folder OSS存储文件夹 * return 外网访问URL */ public String upload(MultipartFile file, String folder) throws Exception { // 1. 校验文件是否为空 if (file.isEmpty()) { throw new Exception(上传文件不能为空); } // 2. 处理文件名和后缀 String originalFilename file.getOriginalFilename(); String suffix ; if (originalFilename ! null originalFilename.contains(.)) { suffix originalFilename.substring(originalFilename.lastIndexOf(.)); } String fileName originalFilename; // 使用原始文件名 // 3. 处理文件夹路径 if (!folder.endsWith(/)) { folder /; } String objectName folder fileName; // 最终OSS存储路径 // 4. 上传文件到OSS InputStream inputStream file.getInputStream(); try { ossClient.putObject(bucketName, objectName, inputStream); } finally { inputStream.close(); // 确保流关闭 } // 5. 构建文件访问URL String endpointWithoutProtocol endpoint.replaceFirst(^https?://, ); return https:// bucketName . endpointWithoutProtocol / objectName; } }三、业务层实现服务接口FileService.javajava运行public interface FileService { // 上传文件并返回文件信息 File uploadFile(MultipartFile file, String fileName); }服务实现类FileServiceImpl.javajava运行Service public class FileServiceImpl implements FileService { Autowired private FileMapper fileMapper; Autowired private OssUtils ossUtils; Override public File uploadFile(MultipartFile file, String fileName) { try { // 1. 上传文件到OSS指定存储文件夹 String folder file/; String fileUrl ossUtils.upload(file, folder); // 2. 构建文件实体对象 File fileEntity new File(); fileEntity.setName(fileName); fileEntity.setUrl(fileUrl); // 提取文件标识用于后续删除 String keyPoints fileUrl.substring(fileUrl.lastIndexOf(/) 1); fileEntity.setKeyPoints(keyPoints); // 3. 保存文件信息到数据库 fileMapper.insert(fileEntity); return fileEntity; } catch (Exception e) { throw new RuntimeException(文件上传失败 e.getMessage()); } } }四、控制器层接收前端请求java运行Controller RequestMapping(/file) public class FileController { Autowired private FileService fileService; PostMapping(/upload) ResponseBody public MapString, Object upload( RequestParam(file) MultipartFile file, RequestParam(fileName) String fileName) { MapString, Object result new HashMap(); try { // 1. 校验参数 if (file null || file.isEmpty()) { result.put(success, false); result.put(message, 请选择文件); return result; } // 2. 调用服务层上传 File fileEntity fileService.uploadFile(file, fileName); // 3. 返回结果 result.put(success, true); result.put(data, fileEntity); result.put(message, 上传成功); } catch (Exception e) { result.put(success, false); result.put(message, 上传失败 e.getMessage()); } return result; } }五、SpringMVC 文件上传配置在springmvc.xml中配置文件上传解析器xml!-- 文件上传解析器 -- bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolver property namemaxUploadSize value10485760/ !-- 最大10MB -- property namedefaultEncoding valueUTF-8/ /bean六、完整上传流程总结前端请求通过表单或 AJAX 提交MultipartFile文件和文件名参数校验控制器检查文件是否为空、文件名是否存在OSS 上传工具类处理文件路径和名称通过 OSS 客户端将文件流上传到指定 Bucket生成外网可访问的文件 URL数据持久化将文件 URL、名称、标识等信息存入数据库返回包含文件信息的成功响应异常处理任何环节出错时返回错误信息七、关键注意点确保 OSS Bucket 的访问权限设置正确通常为公共读生产环境中应使用 UUID 生成唯一文件名避免重名覆盖大文件上传建议分块上传需额外实现记得在项目关闭时关闭 OSS 客户端连接已通过PreDestroy实现实际部署时需替换为自己的 OSS 密钥信息避免泄露
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

成都专业网站设计公司英山县住房和城乡建设局网站

本文将深入对比5款热门呼入机器人:网易七鱼、天润融通、智齿、udesk、优音通信,旨在帮助企业筛选最适合的呼入机器人。 “人工客服请按1,返回上一级请按2,重听请按3……” 每次拨出电话听到这种机械式的回答让人无奈&#xff0c…

张小明 2025/12/29 22:38:35 网站建设

局网站建设方案管理咨询公司swot

温馨提示:文末有资源获取方式系统核心功能列表该系统通过智能解析海量公开数据,为用户提供一个近乎全息的企业信息视图,源码获取方式在源码闪购网。主要输出信息包括:关键联系人通道:企业所有公开联系电话、有效邮箱地…

张小明 2026/1/1 1:15:23 网站建设

如何做学校的网站建设专业网站排名

作为前端开发的基础,DOM 和 BOM 是 JavaScript 与浏览器交互的核心,但很多初学者容易将二者混淆 —— 前者操控网页内容,后者掌控浏览器本身。本文将从定义、核心作用、使用场景、核心对象等维度,彻底讲清 DOM 与 BOM 的区别与联系…

张小明 2026/1/10 15:45:20 网站建设

个人网站如何加入百度联盟ui界面设计介绍

DMA 功能: 直接内存访问,实现外设与内存或内存间数据传输,无需 CPU 干预 大幅提高数据传输效率,释放 CPU 资源 STM32 DMA 特性: 多个通道 (如 DMA1 有 7 个通道,DMA2 有 5 个通道) 支持外设到内存、内存到外…

张小明 2026/1/9 18:48:09 网站建设

网站按钮特效php网站开发教程网

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个基于EtherCAT通讯协议的工业自动化控制系统。系统需要支持多轴运动控制,实时数据传输,以及故障诊断功能。使用AI模型自动生成EtherCAT主站和从站的初…

张小明 2026/1/10 10:51:45 网站建设

网站大图轮播网站定制制作公司

实战指南:如何免费使用SkyWater PDK完成开源芯片设计?130nm工艺完整流程解析 【免费下载链接】skywater-pdk Open source process design kit for usage with SkyWater Technology Foundrys 130nm node. 项目地址: https://gitcode.com/gh_mirrors/sk/…

张小明 2025/12/29 18:33:04 网站建设