代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
ASP
】
上传单个文件到指定文件夹
作者:
Dezai.CN
/ 发布于
2013/7/16
/
1774
上传单个文件到指定文件夹
upload.htm: <form id="form1" name="form1" action="save.asp" method="post" enctype="multipart/form-data"> <input type="File" name="myFile" id="myFile"> <input type="submit" name="submit" value="submit" /> </form> save.asp: <% dim t_stream,FormName,localname,servername,tdata '定义变量 tdata=request.binaryread(request.totalbytes) call getdata(tdata) '调用主体函数处理数据 Function getdata(tempdata) set t_stream=server.createobject("adodb.stream") '初始化stream对象 t_stream.type=1 '设置数据模式为二进制 t_stream.mode=3 '设置读写模式为读和写 t_stream.open '打开stream对象 t_stream.write tempdata '写入用户提交的数据,写入文件用 bcrlf=chrb(13)&chrb(10) '换行符 fpos=instrb(1,tempdata,bcrlf) '找到第一个换行符位置 sSplit=midb(tempdata,1,fpos-1) '得到数据分割标志 slen=lenb(ssplit) '得到数据分割标志的长度 istart=slen+2 '表单开始位置 formend=instrb(istart,tempdata,bcrlf&bcrlf) '获得表单的结束位置 formhead=midb(tempdata,istart,formend-istart) '获得表单相关的文本内容 str=bytes2str(formhead) '将二进制内容转换为文本 startpos=instr(str,"name=""")+6 '查找表单名的开始位置,为什么要+6?name="正好6个字符长 endpos=instr(startpos,str,"""") '查找表单名的结束位置 FormName=mid(str,startpos,endpos-startpos) '获得表单名 startpos=instr(str,"filename=""")+10 '获得本地文件路径的开始位置,+10和上面原理一样 endpos=instr(startpos,str,"""") '获得本地文件路径的结束位置 filename=mid(str,startpos,endpos-startpos) '获得本地文件路径 localname=filename '保存本地文件路径到变量 filename=mid(filename,instrrev(filename,"\")+1) '获得本地文件名 fileExe=split(filename,".")(ubound(split(filename,"."))) '获地文件后缀 valueend=instrb(formend+3,tempdata,sSplit) '获得文件数据的结束位置 newname=getRndName() '调用函数生成随即字串 newname=newname&"."&fileExe '连接后缀生成新文件名,以后保存到服务器用 servername=newname '保存新文件名到变量 call savf("uploadfile\"&newname,formend+3,valueend-formend-6) '调用函数保存文件 t_stream.close '关闭stream对象 set t_stream=nothing '销毁stream对象 End Function '函数名:savf '参数:fname-以本参数为文件名保存到服务器,pos-要保存文件内容在流内的位置,siz-要保存的流大小(也就是文件大小) '作用:保存文件 Function savf(fname,pos,siz) dim mystream set mystream=server.createobject("adodb.stream") mystream.type=1 mystream.mode=3 mystream.open t_stream.position=Pos t_stream.CopyTo mystream,siz mystream.savetofile server.mappath(fname),2'这里的2,指的是文件同名覆盖 mystream.close set mystream=nothing End Function '函数名:bytes2str '参数:byt-待转换的二进制数据 '作用:将二进制数据转换为文本 Function bytes2str(byt) if lenb(byt)=0 then bytes2str="" exit function end if dim mystream set mystream=server.createobject("adodb.stream") mystream.type=2 mystream.mode=3 mystream.open mystream.writetext byt mystream.position=0 mystream.charset="gb2312" mystream.position=2 bstr=mystream.readtext() mystream.close set mystream=nothing bytes2str=bstr End Function '函数名:getRndName '参数:无 '作用:根据时间获得一个随即字串 Function getRndName() dim y,m,d,h,mm,s,r Randomize() y=year(now) m=month(now):if m<10 then m="0"&m d=day(now):if d<10 then d="0"&d h=hour(now):if h<10 then h="0"&h mm=minute(now):if mm<10 then mm="0"&mm s=second(now):if s<10 then s="0"&s r=cint(rnd()*10):if r<10 then r="0"&r getRndName=y&m&d&h&mm&s&r End Function %>
试试其它关键字
上传单个文件
同语言下
.
二进制输出
.
查找text文本中指定字符或词所在句子
.
阻止浏览器冒泡事件,兼容firefox和ie
.
xmlhttp 读取文件
.
定时跳转页面
.
除asp中所有超链接
.
获取Session
.
打包时自定义应用程序的快捷方式与卸载
.
获取局域网中可用SQL Server服务器
.
判断汉字字数
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3