小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

zyupload组件上传文件

# 组件库,组件,文件上传,java 额外说明

收录于:23天前

文件上传是Web开发的重要组成部分。传统的文件上传有以下几种场景:

在这里插入图片描述

更多文件上传请移步文件上传,了解这8个场景就够了感谢作者@奇舞周刊

这里只简单叙述拖拽和多文件上传方式,使用的组件是上传

在这里插入图片描述

实现文件上传数据是用字符流二进制的形式,如下:在这里插入图片描述

上传组件的使用:

<div id="zyupload" class="zyupload"></div>
<script src="lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="lib/jq-module/zyupload/zyupload-1.0.0.min.js" charset="utf-8"></script>
<script type="text/javascript">
    $(function () {
    
        // 初始化插件
        $("#zyupload").zyUpload({
    
            width: "650px",                 // 宽度
            height: "400px",                 // 宽度
            itemWidth: "140px",                 // 文件项的宽度
            itemHeight: "115px",                 // 文件项的高度
            url: "api/upload",  // 上传文件的路径
            fileType: ["jpg", "png", "txt", "js", "exe"],// 上传文件的类型
            fileSize: 51200000,                // 上传文件的大小
            multiple: true,                    // 是否可以多个文件上传
            dragDrop: true,                    // 是否可以拖动上传文件
            tailor: true,                    // 是否可以裁剪图片
            del: true,                    // 是否可以删除文件
            finishDel: false,  				  // 是否在上传文件完成后删除预览
            /* 外部获得的回调接口 */
            onSelect: function (selectFiles, allFiles) {
        // 选择文件的回调方法 selectFile:当前选中的文件 allFiles:还没上传的全部文件
                console.info("当前选择了以下文件:");
                console.info(selectFiles);
            },
            onDelete: function (file, files) {
                  // 删除一个文件的回调方法 file:当前删除的文件 files:删除之后的文件
                console.info("当前删除了此文件:");
                console.info(file.name);
            },
            onSuccess: function (file, response) {
              // 文件上传成功的回调方法
                console.info("此文件上传成功:");
                console.info(file.name);
                console.info("此文件上传到服务器地址:");
                console.info(response);
                $("#uploadInf").append("<p>上传成功,文件地址是:" + response + "</p>");
            },
            onFailure: function (file, response) {
              // 文件上传失败的回调方法
                console.info("此文件上传失败:");
                console.info(file.name);
            },
            onComplete: function (response) {
               	  // 上传完成的回调方法
                console.info("文件上传完成");
                console.info(response);
            }
        });

    });
</script>

后台接口:

@Controller
@RequestMapping("/api")
public class FileUpLaodController {
    
    @CrossOrigin
    @ResponseBody
    @RequestMapping(value = "/upload",method = RequestMethod.POST)
    public String fileUpload(@RequestParam MultipartFile file) throws IOException {
    
        if(file.isEmpty()){
    
            return "上传失败!";
        }
        else {
    
            byte[] bytes = file.getBytes();
            Path path = Paths.get("C:\\Users\\fireapproval\\Desktop\\毕业设计\\数据集\\"+file.getOriginalFilename());
            Files.write(path,bytes);
// FileWriter fileWriter = new FileWriter(new File("C:\\Users\\fireapproval\\Desktop\\毕业设计\\数据集\\"+file.getOriginalFilename()));
// fileWriter.close();
        }
        return "C:\\Users\\fireapproval\\Desktop\\毕业设计\\数据集";
    }
}

MultipartFile是Spring上传文件的封装类。它包含文件的二进制流和文件属性等信息。该文件可以是图片。

The field file exceeds its maximum permitted size of 1048576 bytes

写完前后代码后上传文件时可能会出现上述错误。这是因为spring boot默认限制最大单个文件的大小为1048576字节。

spring.servlet.multipart.max-file-size = 100MB  //最大文件大小
spring.servlet.multipart.max-request-size=100MB    //最大请求数量

根据 Spring Boot 版本的不同,配置可能会有所不同。这里是spring boot 2.7.1版本。

另外值得注意的是文件的写入部分:

  1. 修改传入文件的地址

在这里插入图片描述

  1. 注意@CrossOrigin解决跨域问题

  2. 写入文件方法及文件路径

byte[] bytes = file.getBytes();

//方法一:
Path path = Paths.get("C:\\Users\\_xiaoxu_\\数据集\\"+file.getOriginalFilename());
Files.write(path,bytes);

//方法二:
FileWriter fileWriter = new FileWriter(new File("C:\\Users\\_xiaoxu_\\数据集\\"+file.getOriginalFilename()));
fileWriter.close();

如下图所示上传成功:
在这里插入图片描述

. . .

相关推荐

额外说明

idea运行前端vue

  转 https://blog.csdn.net/qq_42564846/article/details/82688266   刚来公司实习发现公司的前端使用的是vue,之前根本就没有听说过。然后一上来就需要看代码,but but 就是没有文档什么的东

额外说明

单独部署灯

lamp 1. lamp简介 所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有

额外说明

移动电商——Flutter-小类高亮交互效果制作

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

FastJson反序列化漏洞

https://www.anquanke.com/post/id/239867 使用marshalsec 创建恶意RMI服务 注意:此RMI服务不在目标主机上,在搭建了文件服务器的主机上。 (当然,它也可以在其他机器中,只要各个机器可以互相访问) RMI

额外说明

TensorFlow2实现空间自适应归一化(Spatial Adaptive Normalization, SPADE)

TensorFlow2实现空间自适应归一化(Spatial Adaptive Normalization, SPADE) 空间自适应归一化(Spatial Adaptive Normalization, SPADE) 使用独热编码标记分割蒙版 实现SPA

额外说明

云计算的未来:云原生架构和自动化运维的崭露头角

文章目录 云计算的演进 云原生架构 1. 容器化 2. 微服务 3. 自动化部署和扩展 4. 故障恢复 自动化运维 1. 基础设施即代码(IaC) 2. 运维自动化 示例:使用Ansible自动化配置管理 3. 自动化监控和报警 未来展望 1. 更多的自

额外说明

ETL工具 - Kettle 流程、应用算子介绍

一、Kettle 流程和应用算子 上篇文章对Kettle 转换算子进行了介绍,本篇文章继续对Kettle 的流程和应用算子进行讲解。 下面是上篇文章的地址: ETL工具 - Kettle 转换算子介绍 流程算子主要用来控制数据流程和数据流向: 应用算子则

额外说明

外观模式(facade pattern)

一、外观模式简介(Brief Introduction) 外观模式,为子系统的一组接口提供一个统一的界面,此模式定义了一个高层接口,这一个高层接口使的子系统更加容易使用。   二、解决的问题(What To Solve) 1、分离不同的两个层      

额外说明

ajax的代码

  < script language = " javascript " type = " text/javascript " >         var http_request = false ;         function makeReque

额外说明

wordpress修复插件_如何修复WordPress RSS Feed错误

WordPress 修复插件 Are you encountering RSS feed errors on your WordPress site? RSS订阅 help users subscribe to your blog using news

ads via 小工具