断点续传

php文件分片上传,断点续传

泪湿孤枕 提交于 2020-02-28 03:21:38
PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本最大执行时间,超过这个时间就会报错 3.memory_limit=50M 设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了 --enable-memory-limit标志的情况下才生效 4.upload_max_filesize=20M 允许上传文件的最大大小,此指令必须小于post_max_size 5.upload_tmp_dir 上传文件临时存放目录 6.post_max_size=30M 允许post方式可以接受最大大小 $_FILES['myFile']['name'] 客户端上次文件的原始名称。 $_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。 $_FILES['myFile']['size'] 已上传文件的大小,单位为字节。 $_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。 $_FILES

[c#] 断点续传下载文件[带进度条类似迅雷]

杀马特。学长 韩版系。学妹 提交于 2020-02-27 21:57:51
在.net里关于用Http下载文件,有HttpWebRequest实在是简单。通常用这个组建可以轻松为自己量身定做一个类似于迅雷的下载软件,只要你舍得花这个时间。当然,你还可以从socket方面入手,因为那个比用HTTP实现更底层,操作起来更细腻。但我们现在要说的与那无关,迅雷电驴云云,这些下载软件实在是太方便了,以至于我们看起来毫无写这方面软件的必要了。但是,这方面的资料还是必须掌握一点,在很多方面都会用得着。 当然还没说到正题,先说下实现步骤:1.监视剪切板,判断是否含有可以供下载的链接。2.建立下载任务,实时记录下载进度。 3.进度条显示进度。 先说下迅雷的下载格式: thunder://QUFodHRwOi8veGlhemFpLnpvbC5jb20uY24vZG93bi5waHA/c29mdGlkPTExNDkyOSZzdWJjYXRpZD0zNDUmc2l0ZT0xMFpa thunder://后面一连串的字符串是base64加密而成,因此,我们在下载迅雷协议格式的文件时,必须先解码成Unicode文本。 AAhttp://xiazai.zol.com.cn/down.php?softid=114929&subcatid=345&site=10ZZ 去掉 “AA” “ZZ”就是地址了。 using System.IO;//引入输入输出功能 using System.Net

求超大文件上传方案( Web )

爷,独闯天下 提交于 2020-02-27 20:59:13
需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制。 PC端全平台支持,要求支持Windows,Mac,Linux 支持所有浏览器。 支持文件批量上传 支持文件夹上传,且要求在服务端保留层级结构。文件夹数量要求支持到10W。 支持大文件断点续传,要求刷新浏览器,重启浏览器,重启电脑后仍然能够继续上传。文件大小要求能够支持到20个G。 支持自动加载本地文件,要求能够自动加载指定的本地文件。 支持文件批量下载,要求不要在服务器打包。因为20G的文件在服务器打包时间比较长。 支持文件夹下载,要求不要在服务器打包,下载到本地后要求保留层级结构 文件列表面板支持路径导航,新建文件夹 一. 大文件上传基础描述:   各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负责对Http MultiPart协议内容进行解析,并供开发人员调用请求的表单内容。 比如: Spring 框架中使用类似CommonsMultipartFile对象处理表二进制文件信息。 而.NET 中使用HtmlInputFile/ HttpPostedFile对象处理二进制文件信息。 优点:使用框架内置对象可以很方便的处理来自浏览器的MultiPart二进制信息请求,协议分析操作不用开发人员参与。 缺点

js文件分片上传,断点续传

痴心易碎 提交于 2020-02-27 14:27:20
核心原理: 该项目核心就是文件分块上传。前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题。 * 如何分片; * 如何合成一个文件; * 中断了从哪个分片开始。 如何分,利用强大的js库,来减轻我们的工作,市场上已经能有关于大文件分块的轮子,虽然程序员的天性曾迫使我重新造轮子。但是因为时间的关系还有工作的关系,我只能罢休了。最后我选择了百度的WebUploader来实现前端所需。 如何合,在合之前,我们还得先解决一个问题,我们如何区分分块所属那个文件的。刚开始的时候,我是采用了前端生成了唯一uuid来做文件的标志,在每个分片请求上带上。不过后来在做秒传的时候我放弃了,采用了Md5来维护分块和文件关系。 在服务端合并文件,和记录分块的问题,在这方面其实行业已经给了很好的解决方案了。参考迅雷,你会发现,每次下载中的时候,都会有两个文件,一个文件主体,另外一个就是文件临时文件,临时文件存储着每个分块对应字节位的状态。 这些都是需要前后端密切联系才能做好,前端需要根据固定大小对文件进行分片,并且请求中要带上分片序号和大小。前端发送请求顺利到达后台后,服务器只需要按照请求数据中给的分片序号和每片分块大小(分片大小是固定且一样的)算出开始位置,与读取到的文件片段数据,写入文件即可。 为了便于开发,我 将服务端的业务逻辑进行了如下划分,分成初始化

html5文件分片上传,断点续传

杀马特。学长 韩版系。学妹 提交于 2020-02-26 17:04:39
一、 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传; 支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传。刷新页面后继续传输。关闭浏览器后保留进度信息。 支持文件夹批量上传下载,服务器端保留文件夹层级结构,服务器端文件夹层级结构与本地相同。 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验; 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包含层级结构。 支持断点续传,关闭浏览器或刷新浏览器后仍然能够保留进度。 支持文件夹结构管理,支持新建文件夹,支持文件夹目录导航 交互友好,能够及时反馈上传的进度; 服务端的安全性,不因上传文件功能导致JVM内存溢出影响其他功能使用; 最大限度利用网络上行带宽,提高上传速度; 二、 设计分析 对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传 从上传的效率来看,利用多线程并发上传能够达到最大效率。 三、解决方案: 文件上传页面的前端可以选择使用一些比较好用的上传组件,例如百度的开源组件WebUploader,泽优软件的up6,这些组件基本能满足文件上传的一些日常所需功能,如异步上传文件,文件夹,拖拽式上传,黏贴上传,上传进度监控,文件缩略图

.net文件分片上传,断点续传

旧街凉风 提交于 2020-02-25 20:04:35
HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>up6-多标签演示页面</title> <link href="js/up6.css" type="text/css" rel="Stylesheet" charset="gb2312"/> <script type="text/javascript" src="js/jquery-1.4.min.js"></script> <script type="text/javascript" src="js/json2.min.js" charset="utf-8"></script>

网页文件分片上传,断点续传

╄→尐↘猪︶ㄣ 提交于 2020-02-25 18:22:37
总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件切片(分块),但这不是我们现在说的重点,我们要做的事是保证在网络中断后1G的文件已上传的那部分在下次网络连接时不必再重传。所以我们本地在上传的时候,要将大文件进行分片,比如分成1024*1024B,即将大文件分成1M的片进行上传,服务器在接收后,再将这些片合并成原始文件,这就是分片的基本原理。断点续传要求本地要记录每一片的上传的状态,我通过三个状态进行了标记(wait loading finish),当网络中断,再次连接后,从断点处进行上传。服务器通过文件名、总片数判断该文件是否已全部上传完成。 下面来说细节: 1、首先获取文件(音视频、图片) 分两种情况,一种是在相册库里直接获取,一种是调用相机。如果是通过UIImagePickerView来获取(细节不详述,网上一大堆),我们会发现当你选定一个视频的时候,会出现图1的压缩页面,最后我们的app获取的视频就是这个经过压缩后的视频(不是视频库里的原始视频,这里有个注意点,操作完该压缩视频后记得释放,系统不会帮你释放的,需要你手动来操作,下面会说到),然后通过UIImagePickerView的协议方法中的- (void

Indy文件断点续传代码

寵の児 提交于 2020-02-05 02:30:40
function TFrmFileManageCard.UpLoadFileBreak(SourseFileName, DestFileName: String): Integer; var upsize:int64; IDFTP:TidFtp; LSourceStream: TFileStream; LSourceStreamA:TMemoryStream; begin Result:=-1; if Application.MessageBox('文件上传失败,是否断点续传?','提示!',MB_YESNO)<>ID_YES then begin Exit; end; try try IDFTP:=TidFtp.Create(Nil); LSourceStream := TFileStream.Create(SourseFileName, fmOpenRead or fmShareDenyNone); IdFTP.Abort; IdFTP.Host:=FTPHTTPControl.CUR_C_FTPSERVER; IdFTP.Port:=FTPHTTPControl.CUR_I_FTPPORT; IdFTP.Username:=FTPHTTPControl.CUR_C_FTPUSER; IdFTP.Password:=FTPHTTPControl.CUR_C_FTPPWS;

rsync文件断点续传测试

ぐ巨炮叔叔 提交于 2020-01-23 09:41:39
实验一: 一个文件大小为1.2G,发送端传输中途手动中断 接收端已收到95M 此时,MD5值不同 实验二: 发送端rsync继续传输文件直至1.2G文件传输完成 接收端已完整接收文件1.2G MD5值相同 实验三: 原文件ceshi.tar.gz不变,新增文件ceshi后传输,只传输新增文件 实验四: 传输端删除文件ceshi后,rsync命令执行后,接收端文件不被删除 来源: 51CTO 作者: 晓阿赫赫 链接: https://blog.51cto.com/xiaoahehe/2468305

使用webuploader实现断点续传

跟風遠走 提交于 2020-01-20 18:37:17
< template > < div > < br / > 操作步骤: < br / > 1 、点击“选择文件”,选择要上传的文件 < br / > 2 、点击“开始上传”,开始上传文件 < br / > 3 、如需重新上传请重复上边的步骤。 < br / > < br / > < div id = "uploader" class = "wu-example" > < div class = "btns" style = "float:left;padding-right: 20px" > < div id = "picker" > 选择文件 < / div > < / div > < div id = "ctlBtn" class = "webuploader-pick" @click = "upload()" > 开始上传 < / div > < / div > < ! -- 用来存放文件信息 -- > < div id = "thelist" class = "uploader-list" > < div v - if = "uploadFile.id" : id = 'uploadFile.id' > < span > { { uploadFile . name } } < / span > & nbsp ; < span class = 'percentage' > {