当前位置:首页 » 文件管理 » aspnet断点上传

aspnet断点上传

发布时间: 2022-09-19 06:06:25

Ⅰ ASPNET的问题

F11调试

Ⅱ fileupload 上传时,出现文件访问被拒绝的错误

你的文件上传只能针对本网站内的目录。
如果你想传到C盘或D盘的目录。因为使用的aspnet内置账户,不一定对文件夹 有写入权限。

Ⅲ ASPNET(c#)服务器控件FileUpload的问题

你这样搞错了吧.
protected void Page_Load(object sender, EventArgs e)
{
this.FRUploadImage.Attributes.Add("onchange", "document.getElementById('FRUploadImagePic2').src='"+FRUploadImage.PostedFiles.FileName+"'");
}
你这是在Page_Load里执行的,肯定报错,Page_Load是页面初始化就执行的.

你应该再增加一个服务器按钮,然后在按钮的OnClick事件里判断上传控件文件是否为空,然后再保存文件到指定目录.记得保存文件的目录要设置写入的权限.

Ⅳ ASP.NET创建WEB应用程序不能对其进行调试

如果iis是后来安装的,需要首先。net在命令工具中执行aspnet_regiis -i,安装asp。netframework
然后检查下边的配置:
如果iis不是后安装的,直接检查下边的配置:
1.确认在“配置属性”中的“启用ASP.NET调试"为"True"
2.确认你的"web.config"中的"debug=true"
3.若你安装过wind2000 SP4后,则要在命令行执行"regsvr32 i aspnet_isap.dll"
4.在IIS里查看站点信息,选中"目录安全性",里面有"匿名访问和身份验证控制",再点击"编辑..",确认"集成Windows身份验证"选项被选中
5.在IE选项->"安全设置"->"自定义级别"里有"用户验",确认选中"自动使用当前用户名和密码登录"

6。修改machine.config文件里的username=machine改为username=system
7。可以通过附加进程去调试。把w3wp.exe 加进去调试
或者试一试 aspnet_regiis.exe -r

Ⅳ 上传作业照片出现文件访问出错

上传作业照片出现文件访问出错可能程序本身问题。
很有可能是路径不对,包括待上传文件的绝对路径和目标文件夹的路径.你设个断点看看.
你的文件上传只能针对本网站内的目录。如果你想传到C盘或D盘的目录。因为使用的aspnet内置账户,不一定对文件夹有写入权限。
打开某些文件夹的时候,出现提示“无法访问拒绝访问”,导致文件夹打开失败,这让用户非常烦恼。那么,Win10文件夹无法访问拒绝访问怎么解决呢:
1、下面以系统盘里的cookies文件夹为例子,用鼠标右键点击该文件,在弹出的菜单中点击【属性】;
2、在弹出的属性文件夹中,选择【安全】;
3、发现里面多了一个用户,该用户的名字是Everyone,发现这个账户没有任何权限,难怪打不开文件夹,得需要给予权限,点击【编辑】给予权限;
4、在编辑权限的时候,点击完全控制,给予权限后,点击应用确定;
5、点击确定竟然提示【应用安全信息时出错】,点击取消,竟然也提示这个错误;
6、重新查看这个用户的权限时,竟然也赋予了最大权限;
7、尝试着打开文件夹,竟然还不能打开,只能设置最高权限,点击【高级】;
8、在【高级】设置里面,把里面的Everyone账户删除;
9、删除了Everyone账户后,发现终于可以打开文件夹了。

Ⅵ ASP.NET做的网站本地测试正常,上传后台生成静态是出错,返回如下,求帮助!

你是不是用了url重写做成伪静态?
如果你是用FRAMEWORK2。0的话要在IIS中点击网站右键属性->主目录->配置->通配符应用程序映射那里插入C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
把确认文件是否存的的勾去掉

Ⅶ 熟悉用ASP.NET2.0(C#版)开发商务网站的能人进来

2501:越用asp.net2.0越烦,真是烦透了.
2502:在asp.net中如何实现长文章分页的功能?望高手帮忙!!!!!!!!!
2503:DAL层是不是可以共用?
2504:致WebHtmlEditor开发者,顶者有分!!!!
2505:如何区分多核和超线程的区别?
2506:在网络贴吧中,如何实现sql注入,或者显示不同的字体、颜色
2507:新浪上说IBM已经有500GHZ的芯片,英特尔有何感想呢
2508:多核究竟能给我们带来什么?欢迎大家讨论
2509:多线程&多核
2510:开发asp.net,装什么系统?
2511:孟子E章,思归,高手们来看看吧.急哦......
2512:在asp.net里面怎样获取客户端的硬件信息
2513:关于新闻系统的问题
2514:北京北三环安贞找和租
2515:哈哈哈,我的混合型网站终于做好了asp+c#.net
2516:问一下<代码大全2>这本书,怎么样?
2517:新闻发布系统问题!!!急急急急急急!!!!!!!!!!!!
2518:用ASP.NET开发的网站的安全性的问题
2519:我想测试连接数据库是否正常,用什么语句速度最快?
2520:求outlookbar!
2521:求Active Reports for .net 2.0注册机
2522:泡泡网生活社区源码下载
2523:看到好多朋友想换城市就换城市,有点疑惑。
2524:给几个适合初学者的asp.net的例子
2525:多线程同时插入同一张表,会不会提高速度?
2526:最近常常在C#版溜达,给C#版的友人来篇“友邦惊诧论”。
2527:100分!asp.net开发的人事系统案例或者其中某些功能部分也行!比如:请假.
2528:毫无技术含量,真成机器人了
2529:在aspx中使用梅花雪日历控件的问题,你们有谁把梅花雪的日历控件用到aspx文件当中过的进来看看
2530:大家自己都有什么好的ASP.NET作品,给个地址,我下载学习一下,不开源的也行,主要想学习思想和需求
2531:请问一下各位,哪里ASP.NET 2.0写的新闻发布系统或者文章管理系统下载
2532:现在分数怎么这么少了?
2533:急需::asp.net绘制曲线控件或原代码
2534:ADO.NET 如果需要处理每秒100次以上数据的并发。
2535:================DataGrid中动态邦定数据,设置可排序,但是在ItemDataBound事件中居然。。。我靠!!!!!
2536:明天就开始是中考了,放分200 祝福!
2537:谁可以介绍几个好的asp.net源码下载的网站吗
2538:《数字八卦》手机程序,适用于MOTOE680/E680i/E680g/A1200/A780
2539:如何在网页中实现删除硬盘中文件
2540:"处男"我不会鉴别,不过对鉴别"处女",还是有一些方法的
2541:求人力资源系统源玛,asp.net开发
2542:session 使用后能手动关掉马?
2543:绝对路径与相对路径的问题?
2544:[求助]请教兄弟们,如何实现体温表的统计与打印(内有样表)? 难!!!
2545:[馨郁星愿]公司想租用个聊天室?哪里有这样的服务商呢??
2546:ajax的简单应用实例
2547:这算不算是变态空间。。。大家帮帮忙!
2548:如何才能不让用户看到源代码
2549:谁有获取网页上图片URL的代码
2550:谁有获取网页上图片URL的代码
2551:投票:用VS2005网站开发朋友你们现在用的是哪个版本?
2552:哪里有asp.net入门级的选择题题和填空题啊
2553:如何在字符串里边添加图象,像QQ聊天一样的实现呢?
2554:能不能在.net里编个dll文件,然后在asp里也能用,前提是用asp的机子没有.net framework.
2555:大家是否觉得csdn应该标示各层楼的楼数啊?
2556:邮件中的word附件怎样截取并解析出来可以下载?
2557:100分求一个简洁清新的css配色方案
2558:价值100分的问题。统计查询要求用sql语句实现
2559:asp.net上股市趋势图那样的图形列表谁会做?
2560:如何保护我的DLL文件?
2561:求ASP.NET(C#)自动采集代码,在线等
2562:100分求ajax局部刷新image控件图片的源码
2563:SQLServer中如何只取得datetime类型的日期部分?
2564:求助,哪为大哥给个购物车的原码
2565:别整天什么强奸阿、做鸡啊,什么的,其实做程序员编程序只是一份合法的工作!
2566:上海硅科信息技术有限公司,有谁知道吗?
2567:怎么解决,COOKIE保存中文乱码
2568:怎么解决,COOKIE保存中文乱码
2569:平台是什么?很多ERP公司有二次开发平台,这个平台道底是什么???
2570:WebPart问题,求救!!!!!!!!!!!!!!
2571:怎样禁止搜索引擎在某个时段来收录?
2572:一个简单的问题
2573:如何快速知道DataSet中的数据是第几行
2574:多线程采集的问题
2575:我有一个哥们,现正在跟一个女孩谈对象,想知道她以前是否有“越轨”行为(是不是处女?),怎么办呢?
2576:.NET 使用Oracle数据库 连接池参数为何不生效?
2577:小小的正则表达式,求教!
2578:大家在“打飞机”的时候都想些什么呢。顺便问一下,有了女友还用打飞机吗,打飞机被女友发现,她会说些什么
2579:为了女友将辞职,合肥那儿程序员好不好找工作?
2580:十分着急,问FindControl!!!只有这些分数了 大哥们帮忙!
2581:使用接口有什么好处?
2582:BS架构软件也能这样玩
2583:找一控件的值findcontrol?
2584:急!请问哪位有.net Webform和SQL-server环境下图片上传及图片展示的全套代码!分不够可开新贴!
2585:我想做一个商业网站,用来营运,如果用盗版win2003+asp.net+sqlserver开发,会不会被查出来?有啥后果.
2586:送分题:类有哪些特性?
2587:vb.net怎么实现crc32校验,有代码啊?
2588:求页页级"变量"处理方法
2589:有点难度的问题(那位高手帮帮忙).
2590:×××××××××放100分简单问题求解,GridView 中headerText 显示图片的问题
2591:我是学数学的,刚从大学毕业,希望大家指点
2592:程序布署到用户机子上后,FreeTextBox的问题
2593:升猩猩了,散分
2594:这年头想找份工作 真 真 真 的那公难吗?
2595:该项不适于在指定状态下使用
2596:有个项目需要发包,大家报报价!
2597:求助!!!怎么样能让tooltip停留的时间长一点???
2598:工作机会--初级ASP.NET 网站程序员 深圳
2599:Textbox String 性能问题
2600:庆祝网站上线,散分喽!!!人人有份!!
2601:郁闷!偶最近几十次面试都失败了!也不知道是怎么回事,大家帮我看看!
2602:如何将数据库中的新闻读出来,然后像一些新闻网站那样,将信息显示在页面上?
2603:刚刚作完文章采集,丢到自己得空间里却不能用。散分郁闷一下。
2604:刚刚作完文章采集,丢到自己得空间里却不能用。散分郁闷一下。
2605:大家怎么看面试需要上机考试?
2606:‘第二届CSDN优秀版主评比’,有心的朋友支持一下偶或者.net区的几位版主吧~~~
2607:认为编程语言只是工具而已的可以加入本CLUB
2608:asp.net如何与delphi做的服务器通信?
2609:内存泄露了,怎么办?(高手请进...)
2610:如何彻底卸载IE
2611:为世界杯而散分
2612:超级大难题!看似简单,实则超难,现实企业中的确极为实用的一个功能!以我的水平,我认为asp.net 不可能实现!请高高手帮忙解决!!100
2613:想要辞职了却感觉到很郁闷
2614:高分求救!如何动态创建一个类的实例?
2615:如果让留言板的内容支持图片? 急等!!
2616:关于使用文本和标签控件的问题
2617:请教打印问题
2618:datalist外的按钮如果获取datalist的主键取.请教!
2619:如何判断多个Dropdownlist 选项重复?谢谢
2620:请问如何生成动态缓冲页面 .aspx(.aspx?id=435....)
2621:为了跑.net 2005我的电脑配置换了4次
2622:感觉asp.net 对一些细节问题的处理还不如 Asp,谁能解决我的问题!
2623:FileUpload控件的问题
2624:怎样让一个层当它显示时总是在屏幕中央?急!!!
2625:请问10万条数据加入DateSet是会怎么样的?
2626:有没有好的asp.net2。0上传下载系统源代码啊?
2627:我想在页面上添加一个“关闭本页面”按钮,然后点击该按钮,页面就能自己关闭,这个功能如何实现?
2628:今天添了儿子,散分!!!
2629:我想我的这个问题对于刚毕业的人来说都会碰到,欢迎各位指点,迷茫
2630:哪个好心的高手能给个GridView使用<PagerTemplate>自定义分页的完整代码学习一下啊,在网上找的全是少胳膊少腿的不能用~~~~
2631:上传文件时如何文件存在,如何覆盖???在线等
2632:求商业版本的动网论坛(sql)
2633:关于合作做电子商务平台,怎么分配股份的问题?
2634:treeview和数据库
2635:急问:一个GIS系统值多少钱?大家估个价,外包
2636:求教大家 如何编写收取email的程序,不使用jmail
2637:CS 如何调用另外一个CS文件。。。没有编译的情况下
2638:如何调用程序自动对文件进行杀毒,请教高手
2639:有没有办法设置VS.Net默认的源代码管理?
2640:关于三层架构的商讨
2641:为什么说在网上传输字符串比传输图片快?
2642:asp.net中做FTP下载,怎么才能不让它出警告对话框,怎么才能下载到固定目录而无需选择路径?
2643:请问,如何实现在客户端控制服务器上的某一应用程序的打开和关闭?
2644:计算机3级对找asp.net工作影响大吗
2645:正则表达式提取字符串
2646:急问高手:update news set title='aaaaaa' where id='4'为什么不对?
2647:怎么样在Ctrl+V网页上的文章时,将<br>和 等标记也存入数据库?
2648:如何发展才能有出国的机会?
2649:如何编写一个高效的时间触发器?
2650:datagrid中一行能否显示多张图片
2651:虚心请教:转载别人的文章,如何还原格式,和原来格式一模一样?
2652:WebPart问题??
2653:高分求救!如何把有图片与文字的html文档保存到数据库中!
2654:理想有多远,我们就能走多远--写在世界杯开始时
2655:感谢wengnet给我一次面试的机会:)
2656:CSDN里有谁是在千橡的,陈一舟真很无耻......
2657:系统对接
2658:如何让ASPX使用我指定的帐号来写文件(ASPNET帐号我设了不能拥有写权限)
2659:求助!!!新闻采集思路和主要代码.
2660:孟子,思归都答不来的题目,看看有没有挑战者?
2661:怎么样实现忽略大小写进行查询和登陆?
2662:框架的按钮分割条实现问题
2663:我想把家里的一台电脑作为服务器. 可是IP是动态的,我有一个想法不知道可行不? 大家进来看看好吗.....
2664:200分,上海张江转租住房
2665:诚意请教web高手,关于社区虚拟形象系统的一些问题.
2666:高手的进来分析一下
2667:asp.net2.0有能力开发符合web标准(div+CSS)的网站吗?asp.net2.0高人来讨论
2668:简历删除以后简历原来编号无法被新简历所替代
2669:关于alt属性的显示问题
2670:请问如果做网站(会员量超过100万),到底用asp好还是用asp.net好?
2671:100分 明天天早就接分 求一正则表达式用来匹配日期
2672:Access数据库,有办法在添加主题的时候获得id号吗?
2673:在济南齐鲁软件园或附近找个美工工作[急]
2674:message 对话框弹出时是否都会“咚”一声?
2675:我需要帮助
2676:能不能把csdn的论坛作为一个开源项目?让大家共同学习,共同维护
2677:急用sql server 2005简体中文开发版,有没有http下载的
2678:我也来发我的一个简单的.Net网站
2679:100分求asp.net全文检索的源码!!!
2680:为什么在文本框里填入版权标志即一个圆中间一个c(HTML代码就是&;),然后提交到数据库就会出现错误!
2681:迷惑,求解!
2682:如何让TextBox只输入数字
2683:图片刷新的问题
2684:生2星,提前散分
2685:ASP.NET 1.1 如何做真的文件上传进度条???请高手帮忙啊!!!
2686:为了访止非认证网站访问Web Service ,在服务端,如何正确识别调用本WebService的网站URL呢?
2687:请教,有了解 北京德鹏软件有限公司 的XDJM吗?
2688:谁能提供windowsxp的英文版下载,要非集成SP2的,,100分相送
2689:写了5年的ASP,自以为是高手。直到我看到了这样的代码,没有想到程序还可以这么写!!!
2690:谁有 C#高级编程 (第三版)电子版????
2691:调查一下,你用什么配置的机器跑VS2005
2692:惋惜一个美女 ---- 小泽玛利亚
2693:快来救命,100分求助!有关MDAC的问题!给源码再加100分!
2694:如何解析出页面标签中的纯文字内容?
2695:求救啊
2696:很久没来了,现在正为两个工作抉择犯愁,请大家帮忙决策下
2697:http 请求头和响应头 的问题 ------高分求解
2698:想买个空间,请帮忙介绍,随便散点分
2699:大家推荐一些好的CMS系统和新闻系统
2700:北京信源资讯公司怎么样的,有了解的兄弟介绍一下
2701:听说VS2005团队版的正式中文版微软已经正式发布了,不知道哪里有得下载?
2702:******Ajax实现的留言本本,包含无刷新分页,无刷新登陆,删除,回复等技术,大家瞅瞅提点意见******
2703:那位高手帮个忙,解决一下,无限级别分类的问题,????
2704:Repater控件内容内排列的行政行列数,怎么才能控制。(可怜一下吧,画图手都给画累了)
2705:提两上问题关于DropDownList样式表和HTML字符过滤!会的请进!谢谢!
2706:ASP.NET空间多少钱? 有要合租的吗
2707:怎样能出现类似新浪发送邮件时的“正在发送中”的提示框??
2708:有谁知道上海葡萄城信息公司怎么样??
2709:▲▲▲ajax与.net结合开发的搜索引擎▲支持FireFox▲另发现一IE BUG▲▲▲
2710:数据库连接字符串不能默写下来的进来!
2711:今天高考,感触颇深!我现在也是dotnet程序员了,呵呵,上学的时候没有好好学,现在才知道书中自有黄金屋,还有什么什么玉!
2712:用 HttpWebRequest 或 XMLHTTP 获取一个国外网站内容,怎么设置他的超时时间。
2713:高考第一天祝福那些学子 放分200
2714:利用ASP.NET2.0新特性无需代码实现单点登录
2715:在次问个问题....
2716:静态html页面如何实现点击统计?
2717:郁闷呀,今天到我们公司面试的两个人,都半路吓跑了,
2718:求ILDOG1.0代码混淆器破解版(.NET防反编译软件),100分拱手相给
2719:XP菜单的问题!
2720:自从我写了首打油诗给她看后,就老被骂白痴。苦恼
2721:很久没有散分了,问一个问题
2722:一位女生写的追MM秘计(菜鸟立马成高手)
2723:带现在公司的代码去别的公司,犯法吗?
2724:100分 问题 求解!!!!高手请进
2725:老问题了,但好象还没有人有正解!
2726:google为什么一直上不去?
2727:[程序发布]拓文asp.net网站内容管理系统 V2.0 测试版0605
2728:忍不住了!160分求教TREEVIEW一简单问题
2729:刷新后父窗体上原有的很多数据全没了!!!!救我啊!!
2730:这个月增加了一份儿收入,不错
2731:关于加载日期控件的问题,急。。。。在线等
2732:三层结构的问题... ...
2733:混了两年终于混到一颗星~ 大散300分庆祝一下~~
2734:哪里有Asp.NET(C#)的带CS源文件的程序,让我学习一下。
2735:关于在Panel中控件的显示问题?
2736:请大家给我一些asp.net学习代码
2737:请问如何在网站里实现发送短信的功能? 急,急,急
2738:不装Macromedia Flash,只想让客户机运行flash动画(.exe格式),需要安装什么?
2739:目前竞标一项目,对方要求用java,我如何说服对方使用.net呢,请各位支招
2740:我的职业道路如何规划,给点意见吧!
2741:ASP.NET里如何控制线程安全?
2742:如何在dropdownlist 中绑定一个 数组?
2743:大家说说第一个asp.net 工作的工资都是多少?》
2744:求原代码 ASP.NET(C#)
2745:散分:欢迎83出生的程序员加入群:15340097 以前是83年的程序员进来那个帖子要结了。
2746:对目录/picture的访问被拒绝???[再次放送100分]
2747:asp.net群--周末开发加入
2748:在asp.net三层结构项目中怎样处理异常,把这个异常信息提示用户?
2749:星期六是否只有我还在上班?
2750:发现一个好东西!自动生成代码,散分!
2751:C#如何在先播发视频和音乐????????????
2752:急!新手再撒80分!求教关于查询结果的关键字变色问题!大家帮帮忙啊!谢谢了!在线等待中~~~
2753:职业相关:大家说我该去这家单位吗?
2754:100 分求救 一个大家很熟悉的存储过程的问题!!!
2755:医生和大夫的区别
2756:关于指定一段html内所有图片按比例缩小的问题..
2757:我想学一下"如何生成静态页面",谁有这方面的资料,或者给我讲一下思路。

Ⅷ 用DRMER WEAVER做的网页,已做完,也有上传工具,请问到底如何上传到INTRNET上,这里面前奏和具体步骤怎么做

网站上传方法汇总,制作好网页后,如何把网页上传到申请的空间呢?为初学者做一个汇总。

上传的定义

上传就是将信息从个人计算机(本地计算机)传递到中央计算机(远程计算机)系统上,让网络上的人都能看到。将制作好的网页、文字、图片等发布到互联网上去,以便让其他人浏览、欣赏。这一过程称为上传。

上传的来源

上传一词来自英文(upload),拆开来“up”为“上”,“load”为“载”,故上传也叫上载,与下载(download)是逆过程。 网页教学网

上传的分类 Webjx.Com

上传分为Web上传和Ftp上传,前者直接通过点击网页上的链接即可操作,后者需要专用的FTP工具。

上传小知识
网页教学网

在上传主页之前,让我们先来认识Internet上一个基本的概念———FTP。它是英文“File Transfer Protocol”(文件传输协议)的缩写,不过我们今天已经把它看成了一个动词,意思是说在计算机和计算机之间传输文件。把自己制作好的主页上传到服务器上,就要用到FTP。

有许多种方法可以把主页文件上传到Internet服务器上,下面是常见的五种方法。

1、使用FTP软件上传主页文件

这是最常用、最方便也是功能最为强大的主页上传方法。现在网上这类软件很多,像CuteFtp、WS-Ftp已经广受网友欢迎。这类软件除了可以完成文件传输的功能以外,还可以通过它们完成站点管理、远程编辑服务器文件等工作,一些常用的FTP软件还有断点续传、任务管理、状态监控等功能,可以让你的上传工作变得非常轻松。

2、使用“兼职”的FTP软件上传主页文件

所谓兼职的 FTP软件,是指软件本身并不是专门用来完成FTP功能的,主页上传只是其编外任务。例如我们常用的FrontPage、Dreamweaver、东方主页王Ⅱ等都有主页上传、发布的功能。使用这类软件的好处是可以在编辑主页的同时就上传到服务器上查看主页效果,省去了启动软件、登录、设置等诸多麻烦。但是,这种方法往往上传速度较慢,且难以对服务器上的文件进行管理。

3、使用Web页面上传主页文件

和前面两种方法相比,这种方法不但没有什么明显的优点,而且速度缓慢、操作麻烦、不支持断点续传。但是,如果你恰恰申请了一个这样的不支持FTP的免费主页空间,那么就只能使用这种笨拙的方法了!

4、通过命令上传主页文件

在很久很久以前,Unix系统上的FTP程序是基于命令行的,现在的Window95/98/NT/2000/Me仍然有基于命令行的FTP程序(进入 DOS模式,输入FTP就可以了)。使用这种方法首先要掌握几十条命令不说,而且屏幕上通常只能显示25或50行文字,很不方便。图形界面的FTP软件流行之后,这种方法已经被大多数网友抛弃了,只供少数骨灰级的网虫练习他们的指法。

5、通过E-mail上传

这种方法要求你把主页文件通过E-mail发给系统管理员,然后再由系统管理员把它们放到服务器上。这是最简单也是最复杂的方法,随着网络条件的提高,这种方法已逐渐销声匿迹了。

大文件上传
Webjx.Com

以前也做过文件上传,但都是些小文件,不超过2M。 这次要求上传100M以上的东西。没办法找来资料研究了一下。基于WEB的文件上传可以使用FTP和HTTP两种协议,用FTP的话虽然传输稳定,但安全性是个严重的问题,而且FTP服务器读用户库获取权限,这样对于用户使用来说还是不太方便。剩下只有HTTP。在HTTP中有3种方式,PUT、WEBDAV、RFC1867,前2种方法不适合大文件上传,目前我们使用的web上传都是基于 RFC1867标准的HTML中基于表单的文件上传。

一、先简要介绍一下RFC1867(Form-based File Upload in HTML)标准:

1.带有文件提交功能的HTML表单

现有的HTML规范为INPUT元素的TYPE属性定义了八种可能的值,分别是:CHECKBOX, HIDDEN,MAGE,PASSWORD,RADIO,RESET,SUBMIT,TEXT。另外,当表单采用POST方式的时候,表单默认的具有“application/x-www-form-urlencoded”的ENCTYPE属性。

RFC1867标准对HTML做出了两处修改:

(1)为INPUT元素的TYPE属性增加了一个FILE选项。

(2)INPUT标记可以具有ACCEPT属性,该属性能够指定可被上传的文件类型或文件格式列表。

另外,本标准还定义了一种新的MIME类型:multipart/form-data,以及当处理一个带有ENCTYPE="multipart /form-data" 并且/或含有<INPUT type="file">的标记的表单时所应该采取的行为。

举例来说,当HTML表单作者想让用户能够上传一个或更多的文件时,他可以这么写:

<FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>

File to process:
<INPUT NAME="userfile1" TYPE="file">

<INPUT TYPE="submit" VALUE="Send File">

</FORM>

HTML DTD里所需要做出的改动是为InputType实体增加一个选项。此外,我们也建议用一系列用逗号分隔的文件类型来作为INPUT标记的ACCEPT属性。

... (其他元素) ...

<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |

RADIO | SUBMIT | RESET |

网页教学网

IMAGE | HIDDEN | FILE )">

<!ELEMENT INPUT - 0 EMPTY>

<!ATTLIST INPUT

TYPE %InputType TEXT

NAME CDATA #IMPLIED -- required for all but submit and reset

VALUE CDATA #IMPLIED

SRC %URI #IMPLIED -- for image inputs --

CHECKED (CHECKED) #IMPLIED

SIZE CDATA #IMPLIED --like NUMBERS,

but delimited with comma, not space

MAXLENGTH NUMBER #IMPLIED Webjx.Com

ALIGN (top|middle|bottom) #IMPLIED

ACCEPT CDATA #IMPLIED --list of content types

>

... (其他元素) ...

2.文件传输延迟

在某些情况下,在确实准备接受数据前,服务器先对表单数据中的某些元素(比如说用户名,账号等)进行验证是推荐的做法。但是,经过一定的考虑后,我们认为如果服务器想这样做的话,最好是采用一系列的表单,并将前面所验证过的数据元素作为“隐藏”字段传回给客户端,或者是通过安排表单使那些需要验证的元素先显示出来。这样的话,那些需要做复杂的应用的服务器可以自己维持事务处理的状态,而那些简单的应用的则可以实现得简单些。

HTTP协议可能需要知道整个事务处理中的内容总长度。即使没有明确要求,HTTP客户端也应该提供上传的所有文件的内容总长度,这样一个繁忙的服务器就能够判断文件的内容是否是过大以至于将不能完整地处理,从而返回一个错误代码并关闭该连接,而不用等到接受了所有的数据才进行判断。目前一些现有的 CGI应用对所有的POST事务都需要知道内容总长度。

如果INPUT标记含有一个MAXLENGTH属性,客户端可以将这个属性值看作是服务器端所能够接受的传送文件的最大字节数。在这种情况下,服务器能够在上传开始前,提示客户端在服务器上有多少空间可以用来进行文件上传。但是应该引起注意的是,这仅仅是一个提示,在表单被创建后和文件上传前,服务器的实际需求可能会发生改变。

在任何情况下,如果接受的文件过大的话,任何一个HTTP服务器都有可能在文件传输的过程中中断传输。

3.传输二进制数据的其他解决办法

有些人曾经建议使用一种新的MIME类型"aggregate",比如说aggregate/mixed 或是content-transfer-encoding "包"来描述那些不确定长度的二进制数据,而不是靠分解为多个部分来表示。虽然我们并不反对这么做,但这需要增加额外的设计和标准化工作来让大家接受并理解"aggregate"。从另一方面来说,"分解为多部分"的机制工作得很好,能够非常简单的在客户发送端和服务器接受端加以实现,而且能像其他一些综合处理二进制数据的方式一样高效率地工作。

4.例子
Webjx.Com

假设服务器段提供的是如下的HTML:

<FORM ACTION="http://server.dom/cgi/handle"

ENCTYPE="multipart/form-data"

METHOD=POST>

What is your name? <INPUT TYPE=TEXT NAME=submitter>

What files are you sending? <INPUT TYPE=FILE NAME=pics>

</FORM>

用户在“姓名”字段里面填写"Joe Blow",对问题'What files are you sending?',用户选择

了一个文本文件"file1.txt"。

客户段可能发送回如下的数据:

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x

content-disposition: form-data; name="field1" 网页教学网

Joe Blow

--AaB03x

content-disposition: form-data; name="pics"; filename="file1.txt"

Content-Type: text/plain

... file1.txt 的内容...

--AaB03x--

如果用户同时还选择了另一个图片文件"file2.gif",那么客户端可能发送的数据将是:

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x

content-disposition: form-data; name="field1"

Joe Blow

--AaB03x

content-disposition: form-data; name="pics"

Content-type: multipart/mixed, boundary=BbC04y

--BbC04y

Content-disposition: attachment; filename="file1.txt"

Content-Type: text/plain

... file1.txt 的内容...

--BbC04y

Content-disposition: attachment; filename="file2.gif"

Content-type: image/gif

Content-Transfer-Encoding: binary

... file2.gif的内容...

--BbC04y--

--AaB03x--

二、利用RFC1867标准处理文件上传的两种方式:

Webjx.Com

1.一次性得到上传的数据,然后分析处理。

看了N多代码之后发现,目前无组件程序和一些COM组件都是使用Request.BinaryRead方法。一次性得到上传的数据,然后分析处理。这就是为什么上传大文件很慢的原因了,IIS超时不说,就算几百M文件上去了,分析处理也得一阵子。

2.一边接收文件,一边写硬盘。

了解了一下国外的商业组件,比较流行的有Power- Web,AspUpload,ActiveFile,ABCUpload,aspSmartUpload,SA-FileUp。其中比较优秀的是 ASPUPLOAD和SA-FILE,他们号称可以处理2G的文件(SA-FILE EE版甚至没有文件大小的限制),而且效率也是非常棒,难道编程语言的效率差这么多?查了一些资料,觉得他们都是直接操作文件流。这样就不受文件大小的制约。但老外的东西也不是绝对完美,ASPUPLOAD处理大文件后,内存占用情况惊人。1G左右都是稀松平常。至于SA-FILE虽然是好东西但是破解难寻。然后发现2款.NET上传组件,Lion.Web.UpLoadMole和AspnetUpload也是操作文件流。但是上传速度和CPU占用率都不如老外的商业组件。

做了个测试,LAN内传1G的文件。ASPUPLOAD上传速度平均是4.4M/s,CPU占用10-15,内存占用700M。SA-FILE也差不多这样。而AspnetUpload最快也只有1.5M/s,平均是700K/s,CPU占用15-39,测试环境: PIII800,256M内存,100M LAN。我想AspnetUpload速度慢是可能因为一边接收文件,一边写硬盘。资源占用低的代价就是降低传输速度。但也不得不佩服老外的程序,CPU 占用如此之低.....。

三、ASP.NET上传文件遇到的问题

我们在用ASP.NET上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength值并不能完全解决问题,因为ASP.NET 会block直到把整个文件载入内存后,再加以处理。实际上,如果文件很大的话,我们经常会见到Internet Explorer显示 "The page cannot be displayed - Cannot find server or DNS Error",好像是怎么也catch不了这个错误。为什么?因为这是个client side错误,server side端的Application_Error是处理不到的。

四、ASP.NET大文件上传解决方案

解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody 和 ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据。Chris Hynes为我们提供了这样的一个方案(用HttpMole),该方案除了允许你上传大文件外,还能实时显示上传进度。

Lion.Web.UpLoadMole和AspnetUpload 两个.NET组件都是利用的这个方案。

方案原理:
Webjx.Com

利用HttpHandler实现了类似于ISAPI Extention的功能,处理请求(Request)的信息和发送响应(Response)。

方案要点:

1. httpHandler or HttpMole
a.在asp.net进程处理request请求之前截获request对象
b.分块读取和写入数据
c.实时跟踪上传进度更新meta信息

2. 利用隐含的HttpWorkerRequest用它的GetPreloadedEntityBody 和 ReadEntityBody方法处理文件流
IServiceProvider provider = (IServiceProvider) HttpContext.Current;
HttpWorkerRequest wr = (HttpWorkerRequest) provider.GetService(typeof(HttpWorkerRequest));
byte[] bs = wr.GetPreloadedEntityBody();
....
if (!wr.IsEntireEntityBodyIsPreloaded())
{
int n = 1024;
byte[] bs2 = new byte[n];
while (wr.ReadEntityBody(bs2,n) >0)
{ 网页教学网
.....
}
}

3. 自定义Multipart MIME 解析器。
自动截获MIME分割符。
将文件分块写如临时文件。
实时更新Appliaction 状态(ReceivingData, Error, Complete) 。

热点内容
Csharp在线编译 发布:2024-10-10 16:09:58 浏览:141
键值数据库存储图片 发布:2024-10-10 16:01:22 浏览:794
苹果手机设置了密码忘了怎么办 发布:2024-10-10 16:01:17 浏览:73
百视通tv怎么缓存视频 发布:2024-10-10 15:56:12 浏览:679
数据库删除全部数据 发布:2024-10-10 15:43:14 浏览:39
如何破解电脑密码win7 发布:2024-10-10 15:36:29 浏览:131
android视频p2p 发布:2024-10-10 15:16:06 浏览:715
python3scrapy爬虫 发布:2024-10-10 15:11:55 浏览:91
身份存储 发布:2024-10-10 14:51:29 浏览:535
ns2源码 发布:2024-10-10 14:46:42 浏览:565