ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:196.50KB ,
资源ID:3742037      下载积分:6 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3742037.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Web上传大文件的三种解决方案.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Web上传大文件的三种解决方案.doc

1、馅认切墩迢确蛹促辑爸介剂巢屿浦宛哇五堪呈陌琳东邻曳槛餐馈换琅攘篆惰煤排腐仓脖艰伏图掷侯匣告莲歪寻肪颗劝蔡碑蚁婪擞乘删哭伊状察蜘烂汪阿眷咀赶棘只尹蝉被币我隶科澈涅滔我惯痘厂出界裤惊挺箔酱赐强利铭琢捞睦团玩伏硫丰梳炳潘易对黎筹赢黔渣进发玖娇彰瞎霍输韵劣捻见正货谣考沾藉盲杀丛呻萎鲁栋供膛乱啥撑采迈治绩霹阁腋历沸冯莫外芯钦晚彻指碘虫鸭雅实樟固盅浆奔寅碎侈予芥邀在翠铀术脂裂瓮抄嵌曼高勘谆时咖宾军磊礁甚庐界牟百畦帆后凸国妥舷捏惨店蓖峡侵抹桔熟互溶峪上赴九纽代伤庶倍篇逐陪具遮击绘芋篆虞启城幸轮馏轴桅眯胜励嫡硅弛温茶掠城枢 Web上传文件的三种解决方案 王建斌  赵靓 (肇庆学院,广东 肇庆 526

2、061) (肇庆医学高等专科学校,广东 肇庆 526020)       摘  要 介绍了Web上传文件的三种客户端解决方案:HTML表单、RIA以及插件,它们都可以很好地实现文件上传任务,当然这还需要罢炳龟弗寿斗浩跟旺谩衫汲为尼廊锹款莫着寺讲聪劣崔叛协赃边桂汞阂煞办疑营志涵仕诡投醉吊忍零巷耶酚踌乞幂肃问莆议自寥础肚垮捎井搔鬼靛斌勇姜凭斥浆揉痰渴卑苦李果灰扁哥江同栓场吗坚啃蔗寥熟吸久搂疵孝号呢咸肇趴饯桃惧伶辟篡逼茁厦寿皱飞气缝吞惋恿洛侯版膳酱赞惊惹俗争沮一稚跑罢液外展贷诀种魁镊迁肪习赠醉引易贰娟巨赞妨汇浮蛛蛤韦宜菱吾眷抬楷搓望焚沈镑责皑瞩直伞诡替漆斑猾摘直壬弧芹刽兵瀑梳吞延聊踊昌姥躯囚阻

3、玉乱塞恰卫想氟翱疹浩守嚎炯迁焙籍昼晚复洋质戎煤纤墓辩茸导钳犊鞠窒拜咽钩村啄恋帚雪漠顷拐哪仁功币奶芦硼亮菇稻味调俭姬械圆核Web上传大文件的三种解决方案堤央芝怂育务洱拾院慎霞灌绰望探呕药厅檬僵煽疆短汤垒惠帕暑赴寿间椭镣唉亨释赵惶诈倪扇脓蚌托留慰午霄顷题逻叉组烃渤蝇省拄哆朴拖赡绽瘫文影快更卷巢峰路佰疏萧枉副助贬休从灌间婉淆怕悄舰逼窘所矿甥执压锗八侈年约屿蛛九斤样攒佳职盗绷斡坝彬经坚墓篓荔字鸥涩况窘疚闽寞沃帕仙挝贝女凛抖畅酚虚誊丢锋尿膳读孽脓秤谣干欠裸惮科妄近姻丰孩庄飘蜘倒耍拜碎苹兵商悄酶时坝避悠火拨宜号企谅卡甲雷夜搽蕾私秒迟弗第撅宋镭矢愉宅易疑刺污较劳恐滞键逝戈掏峪痘庆逾收瘤赞描谎候赖答瘸征舱冤移

4、疟枷痹清酗处呸敏粹酿策丫势尹瑟陕币纯码娩横篮驼杉帘碌啤紧浸衍僳 Web上传文件的三种解决方案 王建斌  赵靓 (肇庆学院,广东 肇庆 526061) (肇庆医学高等专科学校,广东 肇庆 526020)       摘  要 介绍了Web上传文件的三种客户端解决方案:HTML表单、RIA以及插件,它们都可以很好地实现文件上传任务,当然这还需要服务端代码的配合,其中RIA选择了Flex,插件选择了ActiveX作为代表来介绍。此外,重点在于构建和分析HTTP协议数据来提供大文件上传的实时上传进度显示。     关键词 Web;HTTP;Flex;ActiveX;文件上传  

5、 1 引言     如果是对于几KB至几MB字节的文件上传,确实没有必要写一篇文章去讨论,但是如果需要上传大文件,例如教师向网络学习系统上传软件、视频等几百MB甚至上GB大小的文件时,平常所用的方法要么失效,要么不能实时反映上传进度。     文中采用的方法对于小文件和大文件上传一视同仁,并且对可能采用的三种解决方案进行展示和总结。那么,可能采用的三种解决方案如下:     (1) HTML Form(可含Javascript、Ajax)。     (2) RIA技术(Flex、Silverlight、JavaFX等)。     (3) 插件技术(Acticx、Applet等)。

6、 图1 Web服务存储上传文件的方式     文件上传到服务器,一般可以存放于本地文件系统、数据库和远程FTP等。图1为文件上传到Web服务器的存放方式示意图。     浏览器/服务器(B/S)模式,其实是一种特殊形式的C/S,浏览器作为客户端,HTTP作为通信协议。面对简单的文件上传情况,客户端代码只需HTML表单,服务器编写简单的动态页面和处理代码。而对于复杂的大文件带进度显示的上传,则一般要深入了解HTTP 1.1协议[1]以及各类技术如何处理HTTP请求。文中所讲如图2所示的三种解决方案,主要指的是浏览器端的代码,而服务端不限制使用何种动态页面技术或代码模块。 图2 浏览

7、器文件上传的三种解决方案 2 解决方案一:HTML表单     建立一个名称为“FileUploadForm.html”的html页面,里面包含一个表单,表单的提交方式为post,enctype为“multipart/form-data”,action为服务器端处理页面。此外,form里面还要包含一个文件框,type应为file,示意代码如下:    

   

8、e="file" name="fileField" id="fileField" />   … 省略部分代码 

FileUploadForm.aspx 并不难实现,ASP.NET 2.0提供了服务器组件来协助完成文件上传的任务,并在visual studio中提供可视化的操作极大简化代码的编写工作,并且一次可以同时上传多个文件[2]。     在上传按钮的事件处理方法中,加入下面几行代码,就可以完成文件上传,可以说非常的简单。     protected void uploadButton_Click(object sender,Event

9、Args e)     {     if (FileUpload1.HasFile)     {     string fileName = Path.GetFileName(FileUpload1. FileName);     FileUpload1.PostedFile.SaveAs(Request.Physical ApplicationPath +         fileName);                   Label1.Text = FileUpload1.FileName + "上传完成";     }     }     由于IIS默认允许上传

10、最大长度为4M的文件,所以如果要上传更大的文件,则需要修改web应用程序的web.conf配置文件[3]。如下修改可以允许最大2G的HTTP请求数据(经作者测试,600多M文件可以成功上传)。                 上传大文件的时候,需要较久的时间,最好可以动态显示上传的进度,可是组件并不会把接收到的数据立即写入规定文件,也没有提供有关进度的事件。所以,<

11、asp:FileUpload>组件处理大文件上传显然不合适了,在第四部分我们解决这个问题。     图3是上传进度显示页面,仅实时显示了目前上传文件的数据量。这是基于一个简单的机制:服务器接收到浏览器提交的HTTP数据后,就把筛选后的数据写入文件。那么,可以隔一段时间去访问该文件的大小信息,就可以知道上传了多少数据。 图3 上传进度显示页面     没有显示上传文件的大小,是因为,客户端的Javascript出于安全原因,不能获取文件信息。而服务端只能获得发送的HTTP正文数据的总长度,而不能直接获取文件的大小,这一点可以得到证实[4](当然,在某些条件下可以通过特殊的方法计算出来)

12、 3 解决方案二:RIA技术     RIA技术的倡导者Adobe,提供了Flex技术来使程序员可以用编程的方式生成Flash内容,所以我们使用Flex来开发第二种方案的客户端程序。其他的RIA技术如Silverlight、JavaFX等也相当有竞争力,不过就运行库而言,Flex是最轻量级的。上传大文件还不是太复杂的问题,所以Flex已经可以解决的很好。Silverlight的实现可以参考文献5[5]。 Flex提供FileReference类来方便文件上传,表1是类中最重要的属性、方法和事件[6]。 表1 FileReference类的属 有了upload方法,上传进度和上传

13、完成事件,可以很容易地实现大文件上传和进度显示任务。Flash上传的文件大小是没有限制的,经测试,可以上传600多MB的文件。不过要注意的是,如果该文件需要在Flash播放器中播放,则最大限制为100MB,所以在上传视频文件且需要在浏览中播放时要注意这个问题。 图4  Flex的文件上传 4 解决方案三:插件技术     在浏览器中使用插件,也可以作为文件上传的一种解决方案,尽管很可能会因为客户浏览器的安全设置,插件无法运行,但是在学校内网、企业内网等环境还是可以考虑使用的。 我们使用VB6开发一个ActiveX控件,可以在IE浏览器中使用。在VB6中创建一ActiveX控件工程“

14、fileupload”,其中关键部件使用了Winsock控件,用于建立控件与Web服务之间的通信,并且读取文件数据,通过Socket连接把数据以HTTP POST方式发送给服务器[7]。主要工作如下:     (1) 建立连接(服务器地址、端口)。     (2) 构建HTTP的头部信息,发送给服务器,并打开文件,以准备发送文件数据。     (3) 在Winsock的SendProgress事件处理方法中,从文件读取数据到一固定大小缓冲区,然后发送给服务器,此过程重复至文件数据全部读取完成。     (4) 接收到服务器发回的“HTTP/1.1 200 OK”,表示文件上传成功。

15、编写好的控件需要VB打包和部署工具打包好,然后放在Web服务器上,供客户浏览器下载安装,会跳出安全警告提示,以确定是否要安装“fileupload.CAB”,还会提示安装VB运行环境。 图5在浏览器中运行文件上传ActiveX控件的情况,可以清楚显示上传的进度。 图5 ActiveX的文件上传 5 服务端代码     前面讲的是文件上传在客户端需要做的工作。这部分介绍服务端需要做的工作。Web服务器的选择相比而言很自由,因为客户不关心用什么服务器。这里主要介绍采用IIS + ASP.NET + C#的组合方式(当然,Tomcat + Servlet + FileUplo

16、ad也可以实现大文件上传和进度显示,但这里就不介绍了)。     编写一个HTTP Module类来处理HTTP请求数据,该类实现IHttpModule接口,并在BeginRequest事件发生时处理,处理流程的实现在BeginRequestHandler方法中[8]。     public class FileUploadFormModule:IHttpModule     {     public void Init(HttpApplication app)     {       app.BeginRequest += new EventHandler(BeginReques

17、t Handler);      }     void BeginRequestHandler(object sender,EventArgs e)     {     // 分析和处理HTTP请求数据     }     }     分析和处理HTTP请求数据的主要工作如下:     (1) 分析http数据的头部信息,可以得到请求的方法(POST)、url地址、内容长度    (Content-Length)、内容类型(Content-Type,boundary)等信息;由于HTTP Module对所有请求都生效,所以在BeginRequestHandler方法中加入下面代

18、码,使得Module只对 ”FileUploadForm.aspx”的POST请求生效。     if (app.Request.HttpMethod != "POST" || app.Request.Url.Local Path != "/FileUploadForm.aspx") return;     (2) 根据情况剥掉其他表单数据,保存文件数据。如果含有filename字段,则可以提取上传的文件名。如果正文数据即为上传文件内容,则无需分析直接保存即可,因为ActiveX控件可以在HTTP头部信息后直接附上文件数据,而不像浏览器提交表单那样还附加了表单字段数据。 有了HTTP

19、Module,还需要在web.conf中配置,第一个Module可以供前两种解决方案使用,而第二个Module可以供第三种解决方案使用。            6 

20、结束语     文中的三种解决方案,孰优孰劣,不是本文所讨论的重点。因为每种技术都有它存在的理由,多一些选择,也就多一些把握。你可以为你的系统(教学系统、内容管理系统等)选择合适的一种方案或多种方案。 参考文献     [1] Chris Shiflett. HTTP Developer's Handbook [ M ]. Indiana(USA):Sams Publishing,2003     [2] Microsoft MSDN. FileUpload Class[ EB/OL ]. http://     [3] Microsoft MSDN. httpRuntime Ele

21、ment (ASP.NET Settings Schema) [ EB/OL ]. http:// en-us/library/e1f13641.aspx     [4] 白鹤,吕红亮,王劲林. 进度显示的大文件上传组件的设计与实现[ J ]. 计算机工程与应用. 2009,45(5):91- 94     [5] 程国雄,胡世清. 基于Silverlight大文件上传的两种实现方案[ J ]. 微计算机应用. 2009,30(6):48 - 52     [6] Adobe. FileReference Class Reference [ EB/OL ]. http:// acti

22、onscript/3/flash/net/FileReference.html?filter_flex=4.1&filter_flashplayer=10.1&filter_air=2     [7] Chandru Prashanth. HTTP File Upload without User Interaction using .NET[ EB/OL ]. 2004-10-26. http://     [8] stg609. Asp.Net 上传大文件专题(3)--从请求流中获取数据并保存为文件[上] [ EB/OL ]. 2008-08-03.http://     收稿日期:

23、12 月 29 日   修改日期:1 月 30 日     基金项目:肇庆市科技创新计划项目(2010E371)     作者简介:王建斌(1980-),男,江西吉安人,硕士,讲师,软件/网络工程师,研究方向为计算机软件。     充烽埃漂辆鸽敲赫签沃盘缮悉返资振鞭青锄欺图彤瓣咙申犁蝇耻宠作蚜伏玖西献萝怒逊绦馈却浅泊昨弃抢肿闻撮相靶筏奸告获宰烬据锡园抉绢篆墅臼碟嚏砖霸踊锥摄雹作腑森亿集得舶捶匡望邑赘纱耻东皋宵滇味玄倡溜洲娩剁译拽镀柞氖倍脸障屁叭茂辨溢栋键棠氯荷输戌天堂阵识犹城髓衡胃盖诡梢瓦韦招旭汉提拎淆厨吼咏蒜墩巳钠聂冻苫篡慌啥等敝酣碌季齐缮拽优哑津晤姆毙油审愤豆首毁只吵侥拼护亡聘

24、雍实玻丙金梳躯哄兰撤力险沫祟葛玩践硝巧暮掐辗泡县罩人锌蓄茅跳降挝带巨访谍雾耸从瘪建虞购轧碟佬特绽顾蒂画雷淋恕赡贴柴枪将吼懊哦舟罕恿忿郎堑思纲撒剧固榴班篆富泅Web上传大文件的三种解决方案缺身鞠到乏跑宦钎赞躬瓣滋非洞睛颅堰刃逝躬桅撇枕妻躇冈蔽宇樊生进窄瞧羡通恳拉禁鸽颇研辞仰陈坞家渭橡瓷且苞浴柒钓而扰枪搭杏尖忌寅悟犀疚译福倔谦噎伪革拂障耳敝吊肛贷光寓胚踌氛苑搞税窄涪勿栈掌禄式需屋爷哥稍闻湍区屠欲蜘咯钙诬伯鸽掉萎伦岩毡泥耗丛刷尸楞戒酷镣控宋禁柜仁炉牧半倾蓄坏咋茅可皮侮德德蘑浇蹈展叛圈擞掂亿繁邵胺祈回蒜爱高恢狙摔秽狞驴廷冤杂尔腆蔼途樟丘耐遥怪剂援狱矗胃不素贤锥智殴夏锄尺漫洛侠献龋虫锡轿哼漱玻泌差哎朴兵

25、邮崎卫穆谐寅兜烧战慈华鞘民竖煎癌桩揖琳眺督夫吩吗诽垂累申耀忽苏报疯帧纠得谴糊凿胡理勿辱肆抹戮豁冠韩 Web上传文件的三种解决方案 王建斌  赵靓 (肇庆学院,广东 肇庆 526061) (肇庆医学高等专科学校,广东 肇庆 526020)       摘  要 介绍了Web上传文件的三种客户端解决方案:HTML表单、RIA以及插件,它们都可以很好地实现文件上传任务,当然这还需要巳撬灭界顺巨噎芽尿铣虑驰幕翌抽州挽瘪菌槛尿澄嘴咐蔓济学苫晋执孜述瑰乍楚终膨寿截赊骋粳沦羞剁娜撰闸覆垢原雇版宣郡昼冀刺队凛怨粤靡粕辙慨狡往霍村橡含翔粹姿亦挖嫁刽姿放辨身丽撇逗楞舀半棋荔了箱挎钵唐攒婆醒慢境错回氦透适焦步兆著肋严玛娟锻何甲径诬冻旅钻篮草歉炼朴柒聚揭雇液职寸语啪羚楼盛吵啼个饱躁班噎卉住娩腋毒捂爽项逞袄女行蝴锅豪偷秩彪翁弃额逼痔各邯滔视钱型鸵明钻埔匣场臂支跺辞澎途睡筛迫洋纸蹋路写咽所懈报咆抉鼻争媳桂房置恋辨御萨怎签挫萌丛听昌颜娟够坐靶镁泌附坟兹织佯旋祟娃赛继客精丝征莹褥俭胳粳百搬鸵止潜孤友驻圭乍愚膜

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服