鹏鸿生态板官方网站开发区代理做电商网站需要会些什么条件

news/2025/9/29 2:53:40/文章来源:
鹏鸿生态板官方网站开发区代理,做电商网站需要会些什么条件,重庆招聘信息,ppt制作教程免费全集点击上方蓝色字体#xff0c;关注我们上传文件是互联网中应用的场景之一,最典型的情况就是上传头像。文件上传主要是将文件通过IO流传输到服务器的某一个特定的文件夹下。Why-MultipartFile?解析源码#xff1a;public interface MultipartFile extends InputStreamSour… 点击上方蓝色字体关注我们上传文件是互联网中应用的场景之一,最典型的情况就是上传头像。文件上传主要是将文件通过IO流传输到服务器的某一个特定的文件夹下。Why-MultipartFile?解析源码public interface MultipartFile extends InputStreamSource {}public class MockMultipartFile extends Object implements MultipartFile implements MultipartFile, Serializable {}public class CommonsMultipartFile implements MultipartFile, Serializable {}public interface MultipartFile extends InputStreamSource {}通过源码可以看出 MultipartFile是一个接口这个接口的实现类有 CommonsMultipartFileMockMultipartFileMultipartFile继承InputStreamSource这个接口。MultipartFile--String getName() //返回表单中file文件参数name的名称。--String getOriginalFilename() // 文件原名称--String getContentType() //返回文件的内容类型。--boolean isEmpty() // 返回上传的文件是否为空即在多部分表单中没有选择任何文件或者所选文件没有内容。--long getSize() // 以字节为单位返回文件的大小。--byte[] getBytes() //将文件的内容作为字节数组返回。--InputStream getInputStream() //返回一个InputStream以从中读取文件的内容。--void transferTo(File dest) //将收到的文件传输到给定的目标文件。参考官网地址https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/multipart/MultipartFile.html开始搭建环境jdk1.8引入了spring-boot-starter-thymeleaf做页面模板引擎。 properties    java.version1.8java.versionpropertiesdependenciesdependency    groupIdorg.springframework.bootgroupId    artifactIdspring-boot-starter-webartifactIddependencydependency    groupIdorg.springframework.bootgroupId    artifactIdspring-boot-starter-thymeleafartifactIddependencydependency    groupIdorg.springframework.bootgroupId    artifactIdspring-boot-devtoolsartifactId    optionaltrueoptionaldependencydependenciesapplication.properties配置文件#thymeleafspring.thymeleaf.prefixclasspath:/templates/spring.thymeleaf.suffix.htmlspring.thymeleaf.modeLEGACYHTML5spring.thymeleaf.encodingUTF-8spring.thymeleaf.content-typetext/html# 禁用 thymeleaf 缓存spring.thymeleaf.cachefalse# 上传文件总的最大值spring.servlet.multipart.max-request-size10MB# 单个文件的最大值spring.servlet.multipart.max-file-size10MB# 是否支持批量上传   (默认值 true)spring.servlet.multipart.enabledtrue# 上传文件的临时目录 (一般情况下不用特意修改)spring.servlet.multipart.location# 文件大小阈值当大于这个阈值时将写入到磁盘否则存在内存中(默认值0 一般情况下不用特意修改)spring.servlet.multipart.file-size-threshold0# 判断是否要延迟解析文件(相当于懒加载一般情况下不用特意修改)spring.servlet.multipart.resolve-lazilyfalse常见问题1、表单method设置为post并将enctype设置为multipart/form-data。2、html中name值要和RequestParam(file)中的值保持一致。3、上传文件大小spring.http.multipart.max-file-size限制如果上传的文件超过设置的值会出现这个错误。这个错误是因为Spring文件上传重置问题这个异常是捕获不到需要Tomcat的默认连接器 maxSwallowSize 的参数。Connector port8080 protocolHTTP/1.1connectionTimeout20000redirectPort8443maxSwallowSize-1 /并在上传前实现Javascript检查文件大小。单文件上传单文件上传html页面htmlhtml langenhead   meta charsetUTF-8   title单文件上传titlehead body p单文件上传pform methodPOST enctypemultipart/form-data action/upload  文件input typefile namefile/      input typesubmit/formhr/body创建FileUploadController中的upload方法 (单文件上传)PostMapping(/upload)ResponseBodypublic String upload(RequestParam(file) MultipartFile file) {    //判断非空    if (file.isEmpty()) {        return 上传的文件不能为空;    }    try {        // 测试MultipartFile接口的各个方法        logger.info([文件类型ContentType] - [{}],file.getContentType());        logger.info([文件组件名称Name] - [{}],file.getName());        logger.info([文件原名称OriginalFileName] - [{}],file.getOriginalFilename());        logger.info([文件大小] - [{}],file.getSize());        logger.info(this.getClass().getName()图片路径path);        File f  new File(path);        // 如果不存在该路径就创建        if (!f.exists()) {            f.mkdir();        }        File dir  new File(path  file.getOriginalFilename());        // 文件写入        file.transferTo(dir);        return 上传单个文件成功;    } catch (Exception e) {        e.printStackTrace();        return 上传单个文件失败;    }}注这里除了transferTo方法也可以用字节流的方式上传文件但是字节流比较慢所以还是建议用transferTo下面这个方法是封装的一个用字节流写入文件的方法。  public void writeFile(MultipartFile file) {    try {        //获取输出流        OutputStream os  new FileOutputStream(path  file.getOriginalFilename());        //获取输入流 CommonsMultipartFile 中可以直接得到文件的流        InputStream is  file.getInputStream();        byte[] buffer  new byte[1024];        //判断输入流中的数据是否已经读完的标识        int length  0;        //循环将输入流读入到缓冲区当中(lenin.read(buffer))0就表示in里面还有数据        while((length  is.read(buffer))!-1){            //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath  \\  filename)当中            os.write(buffer, 0, length);        }        os.flush();        os.close();        is.close();    } catch (FileNotFoundException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }}操作步骤单文件上传完成啦接下来就是多文件上传和文件下载。多文件上传html页面htmlhtml langenheadmeta charsetUTF-8title多文件上传titleheadbodyp多文件上传pform methodPOST enctypemultipart/form-data action/uploadBatch    p文件1input typefile namefile/p    p文件2input typefile namefile/p    pinput typesubmit value上传/pformbodyhtmluploadBatch方法PostMapping(/uploadBatch)ResponseBodypublic String uploadBatch(RequestParam(files) MultipartFile[] files) {    logger.info(文件名称 files );    if(files!nullfiles.length0){        String filePath  D:\\datafile\\;        for (MultipartFile mf : files) {            // 获取文件名称            String fileName  mf.getOriginalFilename();            // 获取文件后缀            String suffixName  fileName.substring(fileName.lastIndexOf(.));            // 重新生成文件名            fileName  UUID.randomUUID()suffixName;            if (mf.isEmpty()) {                return 文件名称 fileName 上传失败原因是文件为空!;            }            File dir  new File(filePath  fileName);            try {                // 写入文件                mf.transferTo(dir);                logger.info(文件名称 fileName 上传成功);            } catch (IOException e) {                logger.error(e.toString(), e);                return 文件名称 fileName 上传失败;            }        }        return 多文件上传成功;    }    return 上传文件不能为空;}操作步骤常见问题 The field file exceeds its maximum permitted size of 1048576 bytes.这个错误是由于springboot默认的文件大小是1MB造成的当上传文件超过1MB时就会报错。解决这个报错可以在application.properties中设置上传参数参数项是默认的我们设置最大上传文件大小不超过10MB再次上传会成功。文件下载方法GetMapping(/downloadfile)ResponseBodypublic String downloadFile(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {    String fileName  大话设计模式(带目录完整版).pdf;// 文件名    if (fileName ! null) {        //设置文件路径        File file  new File(D:\\datafile\\大话设计模式(带目录完整版).pdf);        //File file  new File(realPath , fileName);        if (file.exists()) {            response.setContentType(multipart/form-data);            response.setHeader(Content-Disposition, attachment; fileName  fileName ;filename*utf-8 URLEncoder.encode(fileName,UTF-8));            byte[] buffer  new byte[1024];            FileInputStream fis  null;            BufferedInputStream bis  null;            try {                fis  new FileInputStream(file);                bis  new BufferedInputStream(fis);                OutputStream os  response.getOutputStream();                int i  bis.read(buffer);                logger.info(i);                while (i ! -1) {                    os.write(buffer, 0, i);                    i  bis.read(buffer);                }                return 下载成功;            } catch (Exception e) {                e.printStackTrace();            } finally {                if (bis ! null) {                    try {                        bis.close();                    } catch (IOException e) {                        e.printStackTrace();                    }                }                if (fis ! null) {                    try {                        fis.close();                    } catch (IOException e) {                        e.printStackTrace();                    }                }            }        }    }    return 文件不存在;}在下载文件时中文文件名称会出现乱码问题需要设置一下即可。response.setHeader(Content-Disposition, attachment; fileName  fileName ;filename*utf-8 URLEncoder.encode(fileName,UTF-8));总结下载的html页面我就不复制啦一个Spring Boot 上传和下载文件的简单 Demo 就完成了感兴趣的同学可以将示例代码下载下来试试吧。GitHub:https://github.com/xiaonongOne/springboot-upload

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

长安网站建设详细教程oss做静态网站

1、问题: 2、解决办法: 先执行下面命令看exit在哪个头文件下面 man exit 效果如下图 加上头文件编译,问题就解决了 3、 总结 如果看到编译的时候提示wall,我们首先是找到报警搞的函数,再用man 命令来 man 函数,然后找…

建设银行网站登录没反应盐城做网站哪家好

Scala第十七章节 scala总目录 文档资料下载 章节目标 了解集合的相关概念掌握Traversable集合的用法掌握随机学生序列案例 1. 集合 1.1 概述 但凡了解过编程的人都知道程序 算法 数据结构这句话, 它是由著名的瑞士计算机科学家尼古拉斯沃斯提出来的, 而他也是1984年图灵…

爱站网 关键词挖掘工具站长工具wordpress博客数据放在哪里的

微信小程序开发入门之共享账本(十四)(备注:微信小程序的wxml文件相当于HTML文件,wxss文件相当于CSS文件,js文件就是JavaScript文件,数据库为NoSQL数据库,数据库脚本语言也同NoSQL,因为是运行在微信内&#…

PS做网站页面尺寸无锡企业网站制作价格

常见问答:(1)win10安装vc2015提示错误0x80070666如何解决?步骤:前提需要通过程序和功能 将旧版的vc 卸载1、首先下载"VC6.0垃圾文件清理工具";2、将下载的到压缩包解压出来;3、打开文件夹,在Copy…

徐州网站推广公司天津网站设计公司

目前我们的应用内使用了 ArcFace 的人脸检测功能,其他的我们并不了解,所以这里就和大家分享一下我们的集成过程和一些使用心得 集成 ArcFace FD 的集成过程非常简单 在 ArcFace FD 的文档上有说明支持的系统为 5.0 及以上系统,但其实在 4.4 系…

中英网站的设计降权查询网站

对于新版本Ubuntu系统来编译SDK,尤其是buildroot ,是一个巨大考验,发现问题如下: 1. c-stack.c的SIGSTKSZ错误 buildroot 报错:c-stack.c:55:26:error:missing binary operator before token “(“55 在buildroot目录中找到c-s…

西安网站开发huanxi深圳网站建设seo推广优化

字体绝对是每一个设计非常重要的部分,设计者总是希望有最好的免费字体,以保持他们字体库的更新。所以今天我要向设计师们分享一个专业的免费英文字体集合。这些免费的字体是适用于任何类型的图形设计:Web,打印,动态图形…

多智能体系统设计:5种编排模式解决复杂AI任务

当你有一个由研究员、文案、数据分析师和质检员组成的团队时,如果没有合理的协调机制,再优秀的个体也可能产生冲突的结论、停滞的流程,或者解决错误的问题。AI智能体同样如此。 随着系统从单体模型向多智能体架构演…

无刷电机关键参数的测量方法详解

在开发电机的过程中,了解电机的各项参数至关重要。由于不同无刷电机的参数各异,因此在采用FOC算法进行驱动时,确保电机参数的准确性显得尤为关键。通常,购买电机时,厂家会提供这些参数。然而,若厂家未提供,则可…

分类网站有哪些松江新城投资建设有限公司网站

类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统计学检验箱…

北京专业网站制作12333网上服务大厅

目录 3.83.8.1 海象运算符(赋值运算符)3.8.2 f-string3.8.3 仅限位置形参 [/],[*]3.8.4 多进程共享内存3.8.5 \__pycache__3.8.6 asyncio3.8.7 dict 3.93.9.1 字典合并运算符3.9.2 字符串对齐方法3.9.3 可选的类型提示3.9.4 更好的浮点数支持3.9.5 更好的异常处理3.9.6 更好的装…

手机网站做桌面快捷方式深圳华强北电子市场

使用 Apache Spark 进行大数据分析 环境准备 为了能够在本地环境中运行Spark程序,需要先完成环境搭建。确保已经安装了Jupyter Notebook和Apache Spark,并完成了两者之间的集成。 创建 SparkSession 在 Python 中使用 PySpark 时,通常会创…

东莞建设网站公司简介个人内网网站建设

一、VMware设置共享文件夹 (1)虚拟机关机情况下,创建一个共享文件夹 (2)ubuntu中挂载共享文件夹 1、如果之前已经挂载 hgfs,先取消挂载 sudo umount /mnt/hgfs2、重新使用以下命令挂载 sudo /usr/bin/vmh…

岳阳企业网站定制开发网站优化哪个公司好

package IODemo;/*** author Alina* date 2021年11月15日 11:48 下午* 设计思想:设计模式,装饰模式* JAVA中有23种设计思想,全部基于面向对象* 装饰设计模式,核心思想,解决什么问题* 增强原有对象的功能**/ //第一…

做淘宝图片的网站seo快速优化文章排名

文章目录1. 题目2. 解题1. 题目 给你一个整数 n ,请你找到满足下面条件的一个序列: 整数 1 在序列中只出现一次。2 到 n 之间每个整数都恰好出现两次。对于每个 2 到 n 之间的整数 i ,两个 i 之间出现的距离恰好为 i 。 序列里面两个数 a[…

html5大气网站建设个人网页登陆网站

前言:都是脚本文件中的 shebang(也称为 hashbang)行,用于指定脚本文件的解释器 解释: #!/bin/sh:这行告诉操作系统使用 /bin/sh 这个解释器来执行脚本。/bin/sh 是一个标准的 Unix Shell,通常是…

高质量的集团网站建设php做视频直播网站

开发环境:mplab 3.45 harmony 1.09 xc32 1.42 源代码下载:http://download.csdn.net/detail/zn2857/9712711 源代码分析:

深圳自助建站网站做雕塑网站

一、前言 MMCM和PLL是在FPGA设计中不可避免需要使用到的时钟资源,对于其功能及使用方法的理解是正确进行FPGA设计的前提。 二、Xilinx 时钟 IP配置 vivado中使用时钟向导(Clocking Wizard)配置时钟IP核,其框图如下: clk_in 输入时钟&#…

建设银行网站重置密码外国人做的汉子网站

一、概念 依赖注入(Dependency Injection,DI)。 测试pojo类 : Address.java 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 . 二、 注入方式 2.1构造器注入 我们在之前的案例已经…

课上及课下问题汇总

课上及课下问题汇总课堂及课下问题 姓名:裴文昊 学号:20244030 1在线投稿系统 问题:定义ManuscriptInformation类 完成在线投稿系统的基本功能,定义ManuscriptManagement类 1利用数组实现至少存储五个稿件记录入库…