前端上传文件或者上传文件夹

本文讨论了如何在前端使用HTML5、VUE2/3、JQ配合后端JAVA/JSP/SpringBoot实现大文件上传和文件夹结构的断点续传功能,同时考虑到了浏览器兼容性(包括IE)和信创国产化环境(如银河麒麟)。文章提供了up6组件的使用示例以及数据库兼容性信息,强调了7*24小时技术支持和文档资源的需求。
摘要由CSDN通过智能技术生成

前端上传文件支持断点续传,前端上传文件夹支持断点续传。用HTML5,前端用了VUE2,VUE3,JQ,后端用了JAVA,JSP,SpringBoot,要求在前端提供大文件上传的功能,文件大小约为20G左右,可能偶尔有文件会超过这个大小,但是不多,

前端上传文件夹需要保留层级结构,文件夹层级结构信息保存到数据库

前端下载文件夹时同样需要保留层级结构。

网上搜了一圈,基本上都是用的HTML5实现的,也就是chrome提供的API,小文件还好,比如几十MB,500MB左右的话,单个文件上传还凑合,但是文件大点,文件一多就不行了。比如1G以上,或者10G以上,100个文件,1000个文件同时传,就有点不行了,主要就是页面反应慢,卡顿。

浏览器要求支持包含IE在内的所有浏览器,系统环境要求支持信创国产化,比如银河麒麟,统信,龙芯,

客户那边是政府单位,所以要求提供技术支持服务,数据库用了MySQL,达梦,要求提供前端,后端,控件源代码,需要提供手机,QQ,微信,邮箱等联系方式,需要提供7*24小时技术支持服务,需要提供文档教程,视频教程,远程技术指导。

1.下载示例

https://gitee.com/xproer/up6-vue-cli

 

 

将up6组件复制到项目中

示例中已经包含此目录

 

 

1.引入up6组件

 

 

2.配置接口地址

接口地址分别对应:文件初始化,文件数据上传,文件进度,文件上传完毕,文件删除,文件夹初始化,文件夹删除,文件列表

参考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de

 

 

3.处理事件

 

 

启动测试

 

 

启动成功

 

 

效果

 

 

数据库

 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript 本身是不能将文件保存到指定的文件夹中的,这是由于浏览器的安全机制所限制的。如果 JavaScript 能够随意地在用户的计算机上创建和操作文件,那么就会带来很大的安全风险。 不过,你可以使用一些技术来实现类似的功能。例如,可以使用服务器端的脚本语言(如 PHP、Node.js 等)来接收前端上传文件,并将其保存到指定的文件夹中。具体的实现方式,可以参考以下步骤: 1. 在前端页面中,使用 `input` 元素的 `type="file"` 属性创建一个文件上传框,让用户选择要上传文件。 ```html <input type="file" id="fileInput"> ``` 2. 使用 JavaScript 获取上传框中选择的文件,并将其发送到服务器端。 ```javascript var fileInput = document.getElementById('fileInput'); var file = fileInput.files[0]; var xhr = new XMLHttpRequest(); xhr.open('POST', '/upload', true); var formData = new FormData(); formData.append('file', file); xhr.send(formData); ``` 3. 在服务器端接收上传文件,并将其保存到指定的文件夹中。 以 Node.js 为例,可以使用 `fs` 模块中的 `createWriteStream` 方法来创建一个可写流,将上传文件写入到指定的文件夹中。 ```javascript const fs = require('fs'); const path = require('path'); const express = require('express'); const app = express(); app.post('/upload', (req, res) => { const file = req.files.file; const filePath = path.join(__dirname, 'uploads', file.name); const writeStream = fs.createWriteStream(filePath); file.pipe(writeStream); writeStream.on('finish', () => { res.send('上传成功!'); }); }); app.listen(3000, () => { console.log('服务器启动成功!'); }); ``` 在这个例子中,我们将上传文件保存到了 `uploads` 文件夹中。当文件上传完成后,服务器会返回一个成功的响应。需要注意的是,这里使用了 `pipe` 方法将文件的可读流和可写流连接起来,实现了文件的写入操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值