向各位高手求提交文件的一段脚本,不胜感激,在线等待!

paladin2001 2003-10-21 09:02:45
小弟现需要一段代码,在一个表格填写的页面中,填写完后点击提交按钮,需要将填写内容保存为文本,然后传回服务器的一个固定文件夹中,由于小弟对ASP了解不是太深,请各位高手赐代码,谢谢!
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
paladin2001 2003-10-21
  • 打赏
  • 举报
回复
没有人知道吗?
tigerwen01 2003-10-21
  • 打赏
  • 举报
回复
2、再把文件上传到服务器某一文件夹里。
1.把下面的代码保存为upload_5xsoft.inc
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
dim Data_5xsoft

Class upload_5xsoft

dim objForm,objFile,Version

Public function Form(strForm)
strForm=lcase(strForm)
if not objForm.exists(strForm) then
Form=""
else
Form=objForm(strForm)
end if
end function

Public function File(strFile)
strFile=lcase(strFile)
if not objFile.exists(strFile) then
set File=new FileInfo
else
set File=objFile(strFile)
end if
end function


Private Sub Class_Initialize
dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile
dim iFileSize,sFilePath,sFileType,sFormValue,sFileName
dim iFindStart,iFindEnd
dim iFormStart,iFormEnd,sFormName
Version="化境HTTP上传程序 Version 2.0"
set objForm=Server.CreateObject("Scripting.Dictionary")
set objFile=Server.CreateObject("Scripting.Dictionary")
if Request.TotalBytes<1 then Exit Sub
set tStream = Server.CreateObject("adodb.stream")
set Data_5xsoft = Server.CreateObject("adodb.stream")
Data_5xsoft.Type = 1
Data_5xsoft.Mode =3
Data_5xsoft.Open
Data_5xsoft.Write Request.BinaryRead(Request.TotalBytes)
Data_5xsoft.Position=0
RequestData =Data_5xsoft.Read

iFormStart = 1
iFormEnd = LenB(RequestData)
vbCrlf = chrB(13) & chrB(10)
sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1)
iStart = LenB (sStart)
iFormStart=iFormStart+iStart+1
while (iFormStart + 10) < iFormEnd
iInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3
tStream.Type = 1
tStream.Mode =3
tStream.Open
Data_5xsoft.Position = iFormStart
Data_5xsoft.CopyTo tStream,iInfoEnd-iFormStart
tStream.Position = 0
tStream.Type = 2
tStream.Charset ="gb2312"
sInfo = tStream.ReadText
tStream.Close
'取得表单项目名称
iFormStart = InStrB(iInfoEnd,RequestData,sStart)
iFindStart = InStr(22,sInfo,"name=""",1)+6
iFindEnd = InStr(iFindStart,sInfo,"""",1)
sFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))
'如果是文件
if InStr (45,sInfo,"filename=""",1) > 0 then
set theFile=new FileInfo
'取得文件名
iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10
iFindEnd = InStr(iFindStart,sInfo,"""",1)
sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
theFile.FileName=getFileName(sFileName)
theFile.FilePath=getFilePath(sFileName)
'取得文件类型
iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14
iFindEnd = InStr(iFindStart,sInfo,vbCr)
theFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)
theFile.FileStart =iInfoEnd
theFile.FileSize = iFormStart -iInfoEnd -3
theFile.FormName=sFormName
if not objFile.Exists(sFormName) then
objFile.add sFormName,theFile
end if
else
'如果是表单项目
tStream.Type =1
tStream.Mode =3
tStream.Open
Data_5xsoft.Position = iInfoEnd
Data_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3
tStream.Position = 0
tStream.Type = 2
tStream.Charset ="gb2312"
sFormValue = tStream.ReadText
tStream.Close
if objForm.Exists(sFormName) then
objForm(sFormName)=objForm(sFormName)&", "&sFormValue
else
objForm.Add sFormName,sFormValue
end if
end if
iFormStart=iFormStart+iStart+1
wend
RequestData=""
set tStream =nothing
End Sub

Private Sub Class_Terminate
if Request.TotalBytes>0 then
objForm.RemoveAll
objFile.RemoveAll
set objForm=nothing
set objFile=nothing
Data_5xsoft.Close
set Data_5xsoft =nothing
end if
End Sub


Private function GetFilePath(FullPath)
If FullPath <> "" Then
GetFilePath = left(FullPath,InStrRev(FullPath, "\"))
Else
GetFilePath = ""
End If
End function

Private function GetFileName(FullPath)
If FullPath <> "" Then
GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)
Else
GetFileName = ""
End If
End function
End Class

Class FileInfo
dim FormName,FileName,FilePath,FileSize,FileType,FileStart
Private Sub Class_Initialize
FileName = ""
FilePath = ""
FileSize = 0
FileStart= 0
FormName = ""
FileType = ""
End Sub

Public function SaveAs(FullPath)
dim dr,ErrorChar,i
SaveAs=true
if trim(fullpath)="" or FileStart=0 or FileName="" or right(fullpath,1)="/" then exit function
set dr=CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=1
dr.Open
Data_5xsoft.position=FileStart
Data_5xsoft.copyto dr,FileSize
dr.SaveToFile FullPath,2
dr.Close
set dr=nothing
SaveAs=false
end function
End Class
</SCRIPT>
2.用户界面uplfile.htm
<html><title>example</title>
<body>
<!--#include FILE="upload_5xsoft.inc"-->
<%
'strFiel=request.form("file1")
'response.write strFiel
set upload=new upload_5xsoft
set file=upload.file("file1")
response.write upload.form("submit")&"<br/>"
if file.fileSize>0 then
file.saveAs Server.mappath("index.htm")
response.write "<br/>上传文件:"&file.FileName
response.write "<br/>文件大小:"&file.FileSize
end if
set file=nothing
set upload=nothing
%></body>
</html>

tigerwen01 2003-10-21
  • 打赏
  • 举报
回复
1、先使用FSO把内容保存为文本文件;
 一、FSO简介
  FSO对象模型包含以下几种对象:
  Drive对象:允许收集系统物理或通过LAN与系统逻辑连接的硬盘、CD-ROM等驱动器的可用空间、共享名等信息。
  Folder对象:允许创建、删除或移动文件夹,并向系统查询文件夹的名称、路径等。
  Files对象:允许创建、删除或移动文件,并向系统查询文件的名称、路径等。
  TextStream对象:允许创建和读写文本文件。
  FileSystemObject对象:提供一整套用于驱动器、文件夹和文件操作的方法,在功能上可以把它看作是上面几个对象的集合并且经常与它们配合使用。与该对象相关联的很多方法重复了前面四个对象中的方法,因此我们既可以通过FileSystemObject对象来对驱动器、文件夹和文件进行大多数操作,也可以通过对应的驱动器、文件夹或文件对象对这些组件进行操作。FSO模型通过两种方法实现对同一对象的操作,其操作效果是相同的,提供这种冗余功能的目的是为了实现最大的编程灵活性。

在这篇文章中,我们将讲解利用FSO对象模型的TextStream对象对文本文件的操作。

(一) 用 FileSystemObject 来获取文本文件对象
  1.创建一个 FileSystemObject 对象实例
要进行文件操作,首先必须创建一个 FileSystemObject 对象实例,用来创建或打开一个文件.创建一个 FileSystemObject 对象实例的具体格式为(以AFileSystemObject)为例:
Set AFileSystemObject = CreateObject("Scripting.FileSystemObjecct")
  2.用 FileSystemObject 来获取文本文件对象TextStream
FileSystemObject 提供了两种方法用于获取文本文件对象 TextStream,其中用于创建
文件的是 CreateTextFile,用于打开已存在文件的是 OpenTextFile,两种方法的返回结果都是
一个 TextStream 对象的实例,利用该对象可以进行文件的具体操作.
⑴ 创建一个新文件
  创建新文件的方法的具体格式为(以AFileSystemObject为例):
   AFilesystemObject.CreateTextFile(NewFileName,OverwriteExistingFile,IsUnicode)
其中:
  NewFileName 是一个string值,指定要建立的文件的名称,通常为文件的实际路径
加文件名称,如C:\webshare\aspsamp\filetest.txt
  OverwriteExistingFile 是一个Boolean值,表示如果有同名文件存在时是否覆盖
原来的文件.该参数可以省略,缺省时为False,即不覆盖原来文件.
  IsUnicode 是一个Boolean值,表示要建立的文件是ASCII文件还是Unicode文件,
该参数可以省略,缺省时为False,即为ASCII文件.
⑵ 打开已存在的文件
  打开已存在文件的方法的具体格式为(以AFileSystemObject为例):
   AFilesystemObject.OpenTextFile(FileName,IOMode,create,format)
其中:
  FileName 是一个string值,指定要打开的文件的名称,通常为文件的实际路径
加文件名称,C:\filepath\test.txt
  IOMode 是常数值,表示打开文件的目的,ForReading(1)表示用于读取数据;
ForAppending表示用于增加数据.该参数可以省略,缺省时为ForReading.
  Create 是一个Boolean值,表示要打开的文件不存在时是否创建新文件,
该参数可以省略,缺省时为False,即不创建新文件.
  Format 表示文件打开的方式.其可能的值及含义如下:
TristateTrue : 以 Unicode 的方式打开.
TristateFalse : 以 ASCII 的方式打开.
TristateUseDefault : 以系统默认的方式打开.
该参数可以省略,缺省时为 TristateFalse ,即ASCII方式.
(二).用 TextStream 进行文件操作
  在建立或打开了文件之后,就可利用对象 TextStream 提供的方法进行文件的实际操作了.
  1.用于写操作的方法有:
⑴ Write(string)
  将由string指定的字符串写入到文件中.
⑵ WriteLine(string)
  在文件中写入由string指定的字符串,并写入一个换行字符.
  参数string可以省略,此时将在文件中插入一个空行.
⑶ WriteBlankLines(NumOfLines)
  在文件中插入若干空行,行数由 NumOfLines 指定.
  2.用于读操作的方法和属性方法有:
⑴ AtEndOfLine
  该属性是一个Boolean值,表示文件指针是否已指向当前行的行尾.
⑵ AtEndOfStream
  该属性是一个Boolean值,表示文件指针是否已指向文件尾.
⑶ Column
  该属性是一个整数值,表示文件指针在当前行中的位置.
⑷ Line
  该属性是一个整数值,表示文件指针所在行的行号.
⑸ Read(NumOfCharacters)
  该方法从文件当前位置开始,读入由NumOfCharacters数目指定的若干字符,返回一个
  字符串.
⑹ ReadLine
  该方法从文件当前位置开始,读入当前行的内容直到行尾,返回一个字符串.
⑺ ReadAll
  该方法从当前位置开始,读入整个文件的内容直到文件结束,返回一个字符串.
⑻ Skip(NumOfCharacters)
  该方法从文件当前位置开始,跳过由NumOfCharacters数目指定的若干字符.
⑼ SKipLine
  该方法从文件当前位置开始,跳过当前行的内容.
  3.用于关闭文件的方法有:
⑴ Close
  关闭已经建立或打开的文件.

rightyeah 2003-10-21
  • 打赏
  • 举报
回复
Scripting.FileSystemObject对象,在服务器端把request对象里取得的数据写到文件中去
paladin2001 2003-10-21
  • 打赏
  • 举报
回复
高分等待!那位高人知道啊?
本书目标 初学者一看就入门; 有一定基础的人迅速提高。 因为长期从事网络程序设计技术研究和计算机基础应用教育,所以我一直想写一些由浅人深、从入门到精通的教材。希望这些教材真正以学生为中心,符合学生的认知规律,化高深为浅显,化复杂为简单。简单地说,就是让不会的人一看就入门,让会的人看了能迅速提高。 2001年,出版了《网络程序设计--ASP》(第1版),目的是为了解决学生对动态网页制作技术的迫切需要。关于动态网页设计,目前有很多技术,之所以选择ActiveServerPages(ASP),主要是因为它简单、易学、实用。 出版以来,受到了广大读者的认可和欢迎,很多读者也给我提出了很多很好的建议。为了答谢大家对我的厚爱,此次花了大量时间对本书进行了一次全面的更新,希望能更好地帮助大家学习ASP。 几个月来,我仔细研究了大量的计算机类教材和相关的网站,并广泛参考了各位教师、同学和读者的建议,对书中的每一段程序、每一个例子都经过了多次调试。并把书稿让一些朋友反复帮我测试,以发现初学者在学习中常常碰到的一些问题,并加以改进。惟一的希望就是让读者花尽可能短的时间掌握尽可能多的内容。 由于本人能力有限,肯定还有一些不妥当的地方,敬请读者在原谅我的同时给我指出,不胜感激。 本书结构 本书共包括12章,第1章到第2章讲述了什么是动态网页,主要的动态网页程序语言有哪些,如何搭建ASP的运行环境,如何开发一个简单的ASP程序。第3章介绍了VB-Script脚本语言。第4章到第6章介绍ASP的内部对象,如何获取客户端的数据,如何向客户端输出数据,如何记载特定客户和所有客户的信息。第7章到第9章由简到繁详细介绍了如何利用数据库存取组件存取数据库。第10章讲解了其他内部组件,包括文件存取组件、广告轮显组件、计数器组件等。第11章介绍了如何使用第三方提供的组件,包括如何实现文件上传和在线发送E-mail。第12章给出了4个开发实例。附录部分给出了常见问题答疑、ASP资源网站和HTML知识简介。 本书配套光盘包括全书所有例题的源代码,已经经过反复测试。 学习本书需要的预备知识 在学习本书前,希望您已经对HTML语言有一个大致的了解,常见的HTML元素要比较熟悉。简而言之,希望您能够利用HTML开发简单的网页。 当然,如果不是很熟也没关系,一边学习本书一边复习HTML语言就可以了。其实您只要多试几下就可以掌握。 本书附录C有简单的HTML知识介绍。 本书导读 本书在编写时,主要采用案例教学法,列举了大量的示例。一般的示例开始有解释,示例中易产生疑问的地方有注释,示例后面对重要或易错的内容还有说明。在看示例时,一定要从头开始认真逐行看,可以参考注释或程序说明。程序要反复看,看完后要达到这种程度:不仅要精通每一句,而且对程序的总体思想、总体结构要了然在胸,还要清楚本例学习到的新知识。如果能一边看,一边亲自输入练习,就更好了。看明白以后,就可以动手修改以符合您的要。也正是为了让大家练习,所以有的示例并不很完善,需要您自己去完善。 本书在每一章前面精心设计了"本章要点",因为每一章内容都比较庞杂,但常用的内容还是比较少的,所以大家要注意本章要点,重点掌握该部分内容。 本书在每一章后面都精心设计了适量的习题,主要是针对本章重点、难点进行训练。对于掌握本章内容有非常重要的作用。 本书配套光盘里包括所有的源程序,大家可以参照光盘使用说明复制使用。希望大家都能亲自输一遍所有的源程序,即使无法做到这一点,也应该多加修改练习。 本书的支持网站(http://www.jjshang.com)有大量的相关的课件、补充资料、源代码、软件组件等资源,欢迎大家访问。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧