[ASP]利用 xmlhttp 分块上传文件
作者:tzboy 来源:蓝色理想 发布时间:2008-07-04 14:14:00
编写思路:把本地文件在客户端通过base64编码以后发送目的地.
测试过程中,上传文件过大,导致超时不成功.
后来经过改善.把编码分段发送.测试20M成功
编写目的:在传统的解决方案里面,一次一次选取上传可以.但是在碰到把数据库里文件路径读出来,并把这些文件上传到一个地方的时候就比较麻烦.
如果得到路径一个一个去找到用ftp当然也是可以的,但每次找这些文件我看都会比较费时。这里编写这个主要就是为了通过数据库里的文件路径取得文件.把文件一次批量上传到一个地方.
其主要目的还是为了锻炼一下自己.
解决过程:起初试着用模拟键盘输入强行赋值给file控件用传统的方法上传。可是老碰到空值的情况,以至有很多文件没有发送出去。查阅一些资料,现在是把所有路径通过数据库取到然后写到一个js里。然后在前台用js读取这些路径,通过xmlhttp来发送文件。
因为ie不太喜欢xmlHttp.总认为他有恶意行为.所以老谈出提示警告.所以操作的时候不能使用web路径.只能用物理路径去访问它.
然后服务端有一文件来接收这些编码,并对其进行解码.所以我称之为"c/s". ^_^
目前很多代码还在完善中.
简单介绍一下:
aryFiles.push("c:\\aaa.zip") ;
aryFiles.push("c:\\bbb.exe") ;
这里为文件路径和文件.可为多个;以后这个路径也可以通过file控件在客户端取到
http:// www.xxx.com/xxx/xxx.asp
这个是目的地,可以改为自己想要的地址.
ado_stream.LoadFromFile(server.mappath(".") &"/"& + str_filename)
server.mappath(".") &"/"& + str_filename 这里是读取文件.
server.mappath(".") &"/"& 路径和存放路径一致
ado_stream.SaveToFile server.mappath(".") &"/"& str_filename,2
server.mappath(".") &"/"& 这个为存放文件的路径. str_filename 为文件名
这里读取和存放都是放在程序所放目录中.大家测试的时候也可以保持这样即可
把第一段代码放到本地(eg:c:\upload.htm)
把第二段代码放到服务器上,可以是本地服务器,可以是公网服务器.和上面的目的地保持一致
(eg:http://www.xxx.com/upload.asp or http:// localhost/www/upload.asp)
操作:找到第一段代码保存的地方。执行即可(eg:打开c盘执行upload.htm)
目前程序还在调试过程中,希望大家提出宝贵意见
客户端代码
服务端代码
另外:此文的目的并不是说这个程序能给朋友们解决什么问题,主要目的还是为了和大家交流一些心得:
碰到问题->发现问题->解决问题.
希望大家都不要成为一个标准的代码机器人。
多学、多看、多思考、多实践。
没有什么是不能解决的。
猜你喜欢
- Sun公司和Zmanda在3月18号声称他们正在一起合作,为MySQL Enterprise用户交付一种全面、全局数据备份与恢复解决方案。现
- 在 MySQL下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却
- 动机: 排序功能让我们页面上的数据显的更人性化,是我们在网站上见过的很普遍的一个功能效果了。以往的自动排序都是用大量的脚本代码来完成的,对一
- SELECT语句具有种类繁多的各类选项,这些选项可以用来控制数据返回的方式。这些选项以子句、关键词和函数的形式存在。 子句是一种修改结果的语
- JavaScript/Dom中有很多很零碎的东西,让人总是感觉理解的有些“朦胧”,因此,有时候还是应该总结一下,对于Event对象,前两天看
- 导语:近年来,全世界都纷纷投身网络热潮。从小企业到大公司,再到网络学校和大学,大家都在努力提升自己的网络影响力,这样既免费为自身品牌做广告,
- 下列语句部分是Mssql语句,不可以在access中使用。SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLAR
- 依次前移,实现聊友们的发言的更迭:function form1_onsubmit()if document.form1.
- 可能许多同学对SQL Server的备份和还原有一些了解,也可能经常使用备份和还原功能,我相信除DBA之外我们大部分开发员队伍对备份和还原只
- 调度和锁定在很多客户一起查询数据表时,如果使客户能最快地查询到数据就是调度和锁定做的工作了。在MySQL中,我们把select操作叫做读,把
- 本文介绍如何建立基于Web的日历,同时为不熟悉Active Server Pages(ASP)、SQL和ADO的开发者提供建立Web站点的过
- 自己从工艺品设计到平面设计到网络设计,虽然设计原则不离其宗,但经验下来的心得告诉自己,设计媒介的变化带来很多媒介自身的特殊性,下面总结下网站
- 记得很早以前看到过这样的一段介绍:想象你在逛街边的一家书店,如果最终你没有购买任何图书就直接离开了,店长并不会知道你来过。但是如果你买了书,
- 在单个HTML元素上利用CSS2.1实现拥有3张背景图片和2张内容图效果,或者多重边框的效果。这种渐进增强的方式适用于所有支持CSS2.1伪
- 在数据库testDB中存在架构A及用户A,现将testDB数据库所属的用户由A改为B,同时删除用户A;架构也由A改为B,删除架构A,操作如下
- 最近的一个页面中碰到的,本来想用 border 来模拟设计图的虚线效果,但是很明显 border 效果不如设计图来的好看。顺便研究了下 da
- Firefox 的 Jetpack 可以让我们很轻松地创建 Firefox 插件,仅通过已掌握的前端技能(HTML/CSS/JS),估计让人
- 要真说出来哪一个函数能够做得到,还真难。但我们可用下面的代码来进行识别,返回“假”即偶数,返回“真”则奇数: function&n
- 首次安装、运行MySQL时,你可能会遇到一些错误,使MySQL服务器不能启动。本节的目的是帮助你诊断并纠正这些错误。解决服务器问题时你的第一
- 如何做一个随机密码产生器?<%genPassword = ""RandomizeFor&nbs