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

网站开发毕设的需求分析北京市住房和城乡建设部官方网站

网站开发毕设的需求分析,北京市住房和城乡建设部官方网站,优书网下载,做外贸需要关注的网站有什么好处在现代网站中#xff0c;越来越多的个性化图片#xff0c;视频#xff0c;去展示#xff0c;因此我们的网站一般都会支持文件上传。 文件上传的方案 大文件上传#xff1a;将大文件切分成较小的片段#xff08;通常称为分片或块#xff09;#xff0c;然后逐个上传这… 在现代网站中越来越多的个性化图片视频去展示因此我们的网站一般都会支持文件上传。 文件上传的方案 大文件上传将大文件切分成较小的片段通常称为分片或块然后逐个上传这些分片。这种方法可以提高上传的稳定性因为如果某个分片上传失败只需要重新上传该分片而不需要重新上传整个文件。同时分片上传还可以利用多个网络连接并行上传多个分片提高上传速度。断点续传在上传过程中如果网络中断或上传被中止断点续传技术可以记录已成功上传的分片信息以便在恢复上传时继续上传未完成的部分而不需要重新上传整个文件。这种技术可以大大减少上传失败的影响并节省时间和带宽。 前端实现 input idfile typefile !--用来上传文件--监听change事件获取文件 file实现一个方法 chunkFun 用来切片 const file document.getElementById(file) file.addEventListener(change, (event) {const file event.target.files[0] //获取文件信息const chunks chunkFun(file)uploadFile(chunks) })文件切片 file 接受文件对象注意file的底层是继承于blob的因此他可以调用blob的方法slice进行切片size就是每个切片的大小我这里用了4MB 实际可以根据项目情况来 const chunkFun (file, size 1024 * 1024 * 4) {const chunks []for (let i 0; i file.size; i size) {chunks.push(file.slice(i, i size))}return chunks }循环调用接口上传并且存储一些信息当前分片的索引注意file必须写在最后一个因为nodejs端的multer 会按照顺序去读的不然读不到参数, 最后通过promise.all 并发发送请求等待所有请求发送完成通知后端合并切片。 const uploadFile (chunks) {const List []for (let i 0; i chunks.length; i) {const formData new FormData()formData.append(index, i)formData.append(total, chunks.length)formData.append(fileName, xiezhen)formData.append(file, chunks[i])List.push(fetch(http://127.0.0.1:3000/up, {method: POST,body: formData}))}Promise.all(List).then(res {fetch(http://127.0.0.1:3000/merge,{method: POST,headers:{Content-Type: application/json},body:JSON.stringify({fileName: xiaoManXieZhen,})}).then(res {console.log(res)})}) }nodejs端实现 安装依赖 express 帮我们启动服务并且提供接口multer 读取文件存储cors 解决跨域 引入模块 import express from express import multer from multer import cors from cors import fs from node:fs import path from node:path提供两个接口 up 用来存储切片merge 合并切片 初始化 multer.diskStorage destination 存储的目录filename 存储的文件名我是通过index-文件名存储的你也可以改 合并逻辑 读取upload目录下面的所有文件 也就是所有的切片 0-xiezhen 1-xiezhen 2-xiezhen 3-xiezhen读取之后返回的是一个数组但是读取的时候会乱序所以从小到大排个序用了sort排完序之后读取每个切片的内容通过 fs.appendFileSync 合并至一个文件最后删除合并过的切片 完成。respect const storage multer.diskStorage({destination: (req, file, cb) {cb(null, uploads/)},filename: (req, file, cb) {cb(null, ${req.body.index}-${req.body.fileName})} }) const upload multer({ storage }) const app express()app.use(cors()) app.use(express.json())app.post(/up, upload.single(file), (req, res) {res.send(ok) })app.post(/merge, async (req, res) {const uploadPath ./uploadslet files fs.readdirSync(path.join(process.cwd(), uploadPath))files files.sort((a, b) a.split(-)[0] - b.split(-)[0])const writePath path.join(process.cwd(), video, ${req.body.fileName}.mp4)files.forEach((item) {fs.appendFileSync(writePath, fs.readFileSync(path.join(process.cwd(), uploadPath, item)))fs.unlinkSync(path.join(process.cwd(), uploadPath, item))})res.send(ok) })app.listen(3000, () {console.log(Server is running on port 3000) })
http://www.hkea.cn/news/14436730/

相关文章:

  • c2c电子商务网站定制开发网站建栏目建那些
  • 小众写作网站温州做网店的网站
  • 深圳专业建站公司有哪些游戏工作室网络组建方案
  • 北京网站制作网站医药外贸是做什么的
  • 龙港网站建设快速做课件的网站
  • 网站商城具有哪些功能模块vi设计的基本原则
  • 微信网站响应式网站合肥网络推广
  • 网站运营如何做东莞网络公司网络推广
  • 手机网站制作费用wordpress 关键词堆砌
  • 工作室网站免费建设郑州网站建设哪家公司便宜
  • 猴王水果竞猜网站建设微信小程序获取wordpress文章
  • 成功营销网站新公司网站建设
  • 义乌网站建设托管购物网站优惠券怎么做
  • 手机网站设计论文自己做游戏的 网站
  • 公交公司网站建设的意义申论万能模板
  • 李可做的网站网站平台建设哪家公司好
  • linuxvps建站教程深圳市罗湖区住房和建设局网站
  • 公司网站搭建费用源码商城系统
  • 企业网站管理系统用户新加坡网络公司排名
  • 网站视频怎么做的提供服务的网站
  • 建站saas建e室内设计网app
  • 展示产品的网站 个人备案还是企业网站建设毕业设计中期报告
  • 哪个公司的网站做得好品牌做网站还是app
  • 在国外做h网站怎么样网页设计个人网站怎么做
  • 如何在大网站做外链企业网站建设58同城
  • 在酒吧里做那个视频网站关键词优化怎么写
  • 上海网站营销公司合肥高端网站建设设计公司哪家好
  • 网站开发文件夹人工智能软件
  • 洋县建设银行网站wordpress 如何去掉图片地址
  • 临淄建设局网站网站建设定位