目錄
回复讨论(解决方案)
首頁 後端開發 php教程 upload大文件 客户端

upload大文件 客户端

Jun 23, 2016 pm 02:38 PM

想请教下,各位都用什么来实现文件上传? 需要web客户端,能大文件上传,如果是ftp或其他协议需要能够在上传结束后通知http服务器端,或者至少服务器端能有prepost events
如果是http上传需要能够支持chunk,希望是html5或flash的解决方案,不要java applet或者javaFx
即便是付费的不要像aspera那样的贵东西
最主要的是能很好的上传大文件,大文件是指最大到上100G的文件,

服务器端如果能有php的script最好
我试过的有jquery file upload 和plupload


回复讨论(解决方案)

建议使用flash+php来实现,有第三方类库

建议使用flash+php来实现,有第三方类库

能具体点么,flash的客户端叫什么?

PHP+Flash多文件异步上传 
第三方类库swfupload你可以参考一下。

建议使用flash+php来实现,有第三方类库 自己可以设置上传文件的大小。

上传大小限制是配置php.ini哇

想请教下,各位都用什么来实现文件上传? 需要web客户端,能大文件上传,如果是ftp或其他协议需要能够在上传结束后通知http服务器端,或者至少服务器端能有prepost events
如果是http上传需要能够支持chunk,希望是html5或flash的解决方案,不要java applet或者javaFx
即便是付费的不要像aspera那样的贵东西
最主要的是能…… 用Flash的控件是无法上传100G的文件的,别说100G,就是100MB也不行。因为目前网上免费的Flash控件都还不支持断点上传功能。而且也没有MD5扫描功能。

想请教下,各位都用什么来实现文件上传? 需要web客户端,能大文件上传,如果是ftp或其他协议需要能够在上传结束后通知http服务器端,或者至少服务器端能有prepost events
如果是http上传需要能够支持chunk,希望是html5或flash的解决方案,不要java applet或者javaFx
即便是付费的不要像aspera那样的贵东西
最主要的是能…… 传统的HTML方式已经难已满足超大文件的上传。别说是100MB,50MB对服务器来说都是非常大的,服务不仅要专门开一个socket连接接一直等待这个文件上传完毕,还要分配同等大小的内存来保存这个文件对服务器造成的压力相当的大,而且这个压力将会随着用户的增加而成几何式的增加。就算是用Flash也不行,因为目前的Flash不支持断点续传操作,也不支持文件分块操作,Flash和传统的HTML方式上传原理一样。用Flash上传100MB图片,服务器也要分配100MB的内存。10个用户同时上传100MB数据的话,就要吃掉服务器1G的内存。
Flash上传时是将整个文件加截到内存中的,这是比较严重的问题。因为如果用户要上传5G的文件,Flash也会将5G文件全部加载到内存中。这样会严重影响用户的操作体验。因为这时用户的电脑会处于假死状态。一般用户电脑也就2G,所以直接挂掉,内存不足,或内存溢出。

有些朋友试过用Flash文件上传控件来上传超大文件,但是经常遇到上传超时,或上传出错的问题。这是因为现在的Flash文件上传控件使用的技术还是和传统的HTML方式上传一样。让服务器打开一个连接,然后一直等到客户端把这个文件传完。但是在实际的网络环境中,用户的网速可能只有50KB/S,上传200MB的文件可能要花2.8小时。但是服务器的SESSION连接不可能为用户等2.8个小时,这还不考虑复杂的网络环境,比如数据包丢失的情况。如果遇到数据包丢失和网络异常的情况,那用户前面的100MB文件是白传了。这相当于浪费了用户一个小时的时间。给用户带来了极差的体验。
对于服务器来讲,连接资源是非常有限的,就算服务器能够为一个用户等2.8个小时,如果用户访问一大,每一个用户都占用一个连接并且占用这么长时间,那么服务器的并发处理能力就变的非常低了。其它的用户就算是请求一个简单的1KB的HTML页面也必须等服务器处理完前面的用户的请求。

同时Flash也无法满足超大文件的上传需求。因为超大文件上传需求有一个要求就是要保证数据传输的稳定性。比如用户上传1G的文件,已经上传了500MB,这时网突然断了,但是用户希望下次传这个文件的时侯是从最后一次上传的位置开始传输,也就是从500MB的位置开始传输,这一个需求是Flash是无法做到的。

像QQ邮箱中的超大附件上传功能,115网盘中的超大附件上传控件,华为网盘(DBank),金山快盘他们都是使用控件来实现超大文件上传功能的。这样做主要是减轻服务器压力(服务器响应时间更快,并发处理能力更强),节省服务器内存(服务器不必为每个用户都分配与文件同等大小的内存),同时提高用户体验(用户可在复杂的网络环境中上传超大文件)。

当然从技术角度来讲,像这些互联网知名企业也是考虑了支撑海量用户的分布式文件存储构架设计。因为他们的文件存储服务器不可能是一台,而且会动态的随着用户数的增加而增加。

如果真如某些朋友所说的Flash控件就能解决超大文件上传的问题,那么腾迅也不会花那么大的力气专门为QQ邮箱开发一个控件了。

想请教下,各位都用什么来实现文件上传? 需要web客户端,能大文件上传,如果是ftp或其他协议需要能够在上传结束后通知http服务器端,或者至少服务器端能有prepost events
如果是http上传需要能够支持chunk,希望是html5或flash的解决方案,不要java applet或者javaFx
即便是付费的不要像aspera那样的贵东西
最主要的是能…… 网上有一个Web超大文件上传断点续传控件: http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html
此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
支持浏览器:Internet Explorer 6,Internet Explorer 7,Internet Explorer 8,Internet Explorer 9
Maxthon(遨游)1.x,Maxthon(遨游)2.x,TT浏览器,QQ浏览器,360安全浏览器,
Chrome(Google浏览器),Maxthon3.x,360极速浏览器6.x,Firefox
粘贴文件,简化选择文件操作:

文件MD5值计算进度:

文件MD5值计算完毕

服务器根据MD5检测是否存在相同文件

续传文件

从服务器加载文件列表

文件上传中

文件上传完毕

上传文件夹

与Discuz!X2整合-后台安装断点续传控件

与Discuz!X2整合-后台启用断点续传控件

与Discuz!X2整合-后台断点续传控件启用成功

与Discuz!X2整合-前台发帖页面

与Discuz!X2整合-上传


页面调用示例代码:

<!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=utf-8" />    <title>HTTP断点续传控件与MySQL数据库演示页面(UTF-8)</title>    <link href="HttpUploader/HttpUploader.css" type="text/css" rel="Stylesheet"/>    <script type="text/javascript" charset="utf-8" src="HttpUploader/FileLister.js"></script>    <script type="text/javascript" charset="utf-8" src="HttpUploader/HttpUploader.js"></script>    <script type="text/javascript" charset="utf-8" src="HttpUploader/combinbox.js"></script>    <script type="text/javascript" src="HttpUploader/jquery-1.3.2.min.js"></script>    <script language="javascript" type="text/javascript">    	var cbItemLast = null;    	var cbMgr = new CombinBoxMgr();    	$(document).ready(function()    	{    		cbMgr.LoadInControl("FilePanel");    		cbMgr.Init();    	});    </script></head><body>	<div id="FilePanel"></div></body></html>
登入後複製
登入後複製

资源下载:
cab安装包
crx安装包
xpi安装包
exe安装包
开发文档
升级日志
ASP.NET(C#)示例代码:
ASP.NET-ACCESS示例
ASP.NET-SQL2005示例
JSP示例代码:
JSP-ACCESS-GB2312示例
JSP-ACCESS-UTF8示例
JSP-SqlServer2005-UTF8示例
JSP-MySQL-UTF8示例
PHP示例代码:
PHP-MySQL-UTF8示例
Chrome,Firefox,IE断点续传控件示例(以下示例已整合IE32,IE64,Firefox,Chrome平台的插件)
ASP.NET-ACCESS示例
ASP.NET-SQL2005示例
JSP示例代码:
JSP-ACCESS-GB2312示例
JSP-ACCESS-UTF8示例
JSP-SqlServer2005-UTF8示例
JSP-MySQL-UTF8示例
PHP示例代码:
PHP-MySQL-UTF8示例

Chrome,Firefox,IE断点续传控件示例(以下示例已整合IE(x86),IE(x64),Firefox,Chrome平台的插件)
ASP.NET-ACCESS示例
ASP.NET-SQL2005示例
JSP-ACCESS-GB2312示例
JSP-ACCESS-UTF8示例
JSP-SQL2005-UTF8示例
JSP-MySQL-UTF8示例
PHP-MySQL-UTF8示例

Xproer.HttpUploader5: http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html
此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
支持浏览器:Internet Explorer 6,Internet Explorer 7,Internet Explorer 8,Internet Explorer 9
Maxthon(遨游)1.x,Maxthon(遨游)2.x,TT浏览器,QQ浏览器,360安全浏览器,
Chrome(Google浏览器),Maxthon3.x,360极速浏览器6.x,Firefox

页面调用示例代码:

<!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=utf-8" />    <title>HTTP断点续传控件与MySQL数据库演示页面(UTF-8)</title>    <link href="HttpUploader/HttpUploader.css" type="text/css" rel="Stylesheet"/>    <script type="text/javascript" charset="utf-8" src="HttpUploader/FileLister.js"></script>    <script type="text/javascript" charset="utf-8" src="HttpUploader/HttpUploader.js"></script>    <script type="text/javascript" charset="utf-8" src="HttpUploader/combinbox.js"></script>    <script type="text/javascript" src="HttpUploader/jquery-1.3.2.min.js"></script>    <script language="javascript" type="text/javascript">    	var cbItemLast = null;    	var cbMgr = new CombinBoxMgr();    	$(document).ready(function()    	{    		cbMgr.LoadInControl("FilePanel");    		cbMgr.Init();    	});    </script></head><body>	<div id="FilePanel"></div></body></html>
登入後複製
登入後複製

资源下载:
cab安装包
crx安装包
xpi安装包
exe安装包
开发文档
升级日志 
ASP.NET(C#)示例代码:
ASP.NET-ACCESS示例
ASP.NET-SQL2005示例
JSP示例代码:
JSP-ACCESS-GB2312示例
JSP-ACCESS-UTF8示例
JSP-SqlServer2005-UTF8示例
JSP-MySQL-UTF8示例
PHP示例代码:
PHP-MySQL-UTF8示例
Chrome,Firefox,IE断点续传控件示例(以下示例已整合IE32,IE64,Firefox,Chrome平台的插件)
ASP.NET-ACCESS示例
ASP.NET-SQL2005示例
JSP示例代码:
JSP-ACCESS-GB2312示例
JSP-ACCESS-UTF8示例
JSP-SqlServer2005-UTF8示例
JSP-MySQL-UTF8示例
PHP示例代码:
PHP-MySQL-UTF8示例

Chrome,Firefox,IE断点续传控件示例(以下示例已整合IE(x86),IE(x64),Firefox,Chrome平台的插件)
ASP.NET-ACCESS示例
ASP.NET-SQL2005示例
JSP-ACCESS-GB2312示例
JSP-ACCESS-UTF8示例
JSP-SQL2005-UTF8示例
JSP-MySQL-UTF8示例
PHP-MySQL-UTF8示例
不错,这个用户体验不错,和QQ邮箱里面的大附件上传功能一样了。 

Flash上传超大文件不行。上传10MB左右的文件还凑合。

收藏!!!!!!!!!!!!!!!!!!!!!!!

楼上的那几位是托么? 如果不是谢谢了,但是这个控件还是算了,这个价格我们不如加点钱买aspera了,他也提供各个浏览器的插件

现在的话可以考虑用基于html5的chunk上传,不过主流浏览器(chrome和FF)似乎都对file.slice的对象进行了大小限制,我看到fine uploader官网的说明是最大4G,也就是说100G什么的就不现实了,不想用控件的话这大概就是瓶颈了,就我所找到的也只有fine uploader和plupload支持切割文件然后上传,但具体效果如何也有待测试,还有,这两者都是收费的。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
說明PHP中的安全密碼散列(例如,password_hash,password_verify)。為什麼不使用MD5或SHA1? 說明PHP中的安全密碼散列(例如,password_hash,password_verify)。為什麼不使用MD5或SHA1? Apr 17, 2025 am 12:06 AM

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型? PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型? Apr 17, 2025 am 12:25 AM

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

您如何防止PHP中的SQL注入? (準備的陳述,PDO) 您如何防止PHP中的SQL注入? (準備的陳述,PDO) Apr 15, 2025 am 12:15 AM

在PHP中使用預處理語句和PDO可以有效防範SQL注入攻擊。 1)使用PDO連接數據庫並設置錯誤模式。 2)通過prepare方法創建預處理語句,使用佔位符和execute方法傳遞數據。 3)處理查詢結果並確保代碼的安全性和性能。

See all articles