ITPub博客

首页 > 应用开发 > IT综合 > ASP文件上传神功 第三重(招势图加内功心法) (转)

ASP文件上传神功 第三重(招势图加内功心法) (转)

原创 IT综合 作者:amyz 时间:2007-11-16 18:25:26 0 删除 编辑
ASP文件上传神功 第三重(招势图加内功心法) (转)[@more@]

第三重:集成类、多语种通用,使用方便

  这个问题已经不是什么新鲜问题了,网上也有大把的教程,但大多数是授人以鱼,而不授人以渔,经过辛苦的资料收集,思考,调试,整理,我基本上已经把这个问题从原理上搞清楚了,现在根据我自己的理解,在范例程序的基础上,加以解释,希望能对部分网友(比我还菜的:-))有所帮助。

  请诸位大虾能对其中的不正或不良这处予以指正。

  程序中stream对象的用法上参考了“化境HTTP上传程序 Version 2.0”在代码,在此对稻香老农梁无惧表示衷心的感谢和由衷的敬意。

  先来分析一下,为后面的数据分析算法打点基础,以下是我摘录的一小段网页中提交的二进制数据:
-----------------------------7d31ec15102d0
Content-Disposition: form-data; name="txtTitle"

满脑的想法
-----------------------------7d31ec15102d0
Content-Disposition: form-data; name="filImage"; filename="F:material木纹背景pic016.jpg"
Content-Type: image/pjpeg

?? JFIF      ? C 

 !!E.'.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE??" ?      
? ?   } !1AQa"q2亼?#B绷R佯$3br?
侼s歊J佦=ǜ珻,%??Xm 銓鼽?幮??驲湕胄滙C?
儗 g?咶? tS??B矠:u隠c
g?不t凄L琰h`啨0p
 g殲41?9'$筵奆]眬?膁?摍? 渦"???
-----------------------------7d31ec15102d0
Content-Disposition: form-data; name="btnUPLOAD"

Upload
-----------------------------7d31ec15102d0--

  蓝色的字符的内容我们应该熟悉吧,中间的乱码就是上传的文件的内容,其实我们要做的就是将这一堆数据进行分析,挑出对我们有用的数据保存下来就OK了。分析数据就是查找一些标志性的内容,如回车换行符,“----------”符号,用两个指针确定两个位置,然后提取数据,我的算法不知道好不好,本人的数据结构是学得很烂的,十分sorry。

以下是一个完事的应用,其中的类定义可以与入另一个文件,使用的时候只要用

 <!--include file="LjUpload.cls"-->

命令包含进来就可以了。

LjUpload.ASP

<%@ Language=vbscript %>
<% option explicit %>



microsoft Visual Studio 6.0">

ASP无<A href="tag-260-1.html">组件</A>上传类:LjUpload


<%
if request.ServerVariables("REQUEST_METHOD") = "POST" then

 dim upload
 set upload = new LjUpload
 upload.Charset = "gb2312"   '设置文本信息的语言属性
 upload.GetData()
 
 dim title, filImage
 title = upload.Form("txtTitle")
 Response.Write title & "
"
 set filImage = new LjFile   '这句可不用,此处仅为写代码方便
 set filImage = upload.File("filImage")
 Response.Write filImage.FileName & "
"
' 以文件形式保存到磁盘,文件名是当前日期时间的处理值
 filImage.SaveToFile server.MapPath("./") & "" & replace(replace(replace(now(),"/","_")," ","_"),":","_") & "." & right(filImage.FileName,3)
 
' 保存到数据库用以下的代码
' dim cn, rs, sql
' set cn = server.CreateObject("adodb.connection")
' cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("upload.mdb")
' set rs = server.CreateObject("adodb.recordset")
' sql = "select title,[content-type],image from tblImage"
' rs.Open sql,cn,1,3
' rs.AddNew
' rs.Fields("title").Value = title
' rs.Fields("content-type").Value = filImage.ContentType

' rs.Fields("image").AppendChunk filImage.GetBinaryData()

' rs.Update
' rs.Close
' set rs = nothing
' cn.Close
' set cn = nothing

 upload.about()   '关於类信息
 
 set filImage = nothing
 set upload = nothing
end if
%>
 

" method="post" target="_self" enctype="multipart/form-data">
 

标题:


 

图片:


 
 


完。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-982800/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 一脚踢掉NEW (转)
下一篇: ANT学习笔记 (转)
请登录后发表评论 登录
全部评论
  • 博文量
    3984
  • 访问量
    7372102