PHP+JS+HTML5+Flash网页上传超大文件的解决方案

原创 2015年11月18日 23:44:29

所有Web程序猿都有过通过网页上传文件到服务器的经历,上传小文件是十分简单的。当你上传的文件大小逐渐变大的时候,就会遇到第一个问题:


1.PHP上传文件的大小是有限制的,默认是2M,即使你改大了,也是治标不治本。而且,当文件上升到GB级别的时候,就不单单只是PHP的问题了,你服务器的内存也会被吃光。


2.用传统的提交表单的方式上传大文件,进度显示不友好。


3.如果用户上传的文件,你服务器上本来就有,难道还让用户再传一遍?


为了解决以上的三个问题,分别有对应的方法:

1.当用户在浏览器里选择文件后,如果文件大小超出限制,立马将文件切片,分片上传。

2.利用flash或者html5来展示上传进度条。

3.上传前就在本地做HASH,通过和服务器的比对,确定该文件是否要上传。


其中,HTML5和Flash是二选一的,因为不同品牌,不同时代的浏览器的兼容性,通常会两者齐用。优先考虑Html5。

代码实现的过程中,有几个难点,一个是大文件的分片上传。这个是用JS来实现的。原来和我们平常所说的断点续传类似。就是每次传一部分,把长度或者开头和结尾一起传上去。另一个是文件的HASH验证,这个你就别指望用现成的代码了,因为Hash是很耗费资源的,试想一下,如果你要用JS把一个2G的文件Hash一遍,将用时多久?所以通常都是自己写算法验证的。思路是分段MD5验证,避免全文MD5。


下面开始提供解决方案:

百度前端团队开源了一款网页上传插件,名字叫Webuploader,完美解决了上述问题。开源链接

版权声明:本文为博主原创文章,未经博主允许不得转载。联系邮箱longge93@cliyun.com

PHP文件上传及其突破上传文件大小限制

PHP如何实现文件上传 1.表单部分  允许用户上传文件,在HTML表单的声明中要加上一个上传的属性:  enctype = 'multipart/form-data'  表单的metho...
  • qq_34437587
  • qq_34437587
  • 2016年11月06日 17:23
  • 1450

IIS7.5 + php 解决上传大文件问题!

接手新公司服务器用的是window系统,PHP用iis的fastcgi运行,由于公司网站需要一个上传文件的功能,我采用了开源的webuploader组件进行上传,在本地测试完成可以,打是在服务器上就是...
  • bobay
  • bobay
  • 2015年08月17日 17:55
  • 2708

php 文件上传 (html5 flash 进度条 XXXXXX)

php 最简单的一个上传 php文件上传是非常简单的啦,在html页面有一个表单,form标签有一个属性设置成enctype="multipart/form-data" 标签的 type="file"...
  • wtcsy
  • wtcsy
  • 2012年12月11日 00:27
  • 2887

利用HTML5分片上传超大文件

在网页中直接上传大文件一直是个比较头疼的问题,主要面临的问题一般包括两类:一是上传时间长中途一旦出错会导致前功尽弃;二是服务端配置复杂,要考虑接收超大表单和超时问题,如果是托管主机没准还改不了配置,默...
  • moonpure
  • moonpure
  • 2017年02月04日 10:25
  • 1648

利用HTML5分片上传超大文件

在网页中直接上传大文件一直是个比较头疼的问题,主要面临的问题一般包括两类:一是上传时间长中途一旦出错会导致前功尽弃;二是服务端配置复杂,要考虑接收超大表单和超时问题,如果是托管主机没准还改不了配置,默...
  • xiaofei0859
  • xiaofei0859
  • 2016年04月17日 23:11
  • 955

利用HTML5分片上传超大文件

利用HTML5分片上传超大文件 在网页中直接上传大文件一直是个比较头疼的问题,主要面临的问题一般包括两类:一是上传时间长中途一旦出错会导致前功尽弃;二是服务端配置复杂,要考虑接收超大表单和超...
  • sinat_29891353
  • sinat_29891353
  • 2017年04月25日 11:04
  • 391

js html5 上传文件、多文件,服务器 端php

表单里面的 enctype=”multipart/form-data” 不能少, 使用的 是 jq 方式, XMLHttpRequest 对象是 js 写法,下面注释了, 两种方式,都需要 浏...
  • qq_32835907
  • qq_32835907
  • 2017年06月09日 13:40
  • 658

php html5 flash 上传

  • 2012年12月19日 16:42
  • 262KB
  • 下载

纯HTML5+JS+PHP批量上传

  • 2014年07月08日 21:31
  • 4KB
  • 下载

sbupl 纯HTML5+JS批量上传 带PHP示例仅2KB

  • 2015年11月26日 01:15
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP+JS+HTML5+Flash网页上传超大文件的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)