您现在的位置: 计算机世界网 >> 网站技术 >> ASP篇 >> 文章正文
☉ 精品特别推荐
 
☉ 最新文章浏览
 
☉ 其它热门浏览
 
ASP文件上传原理分析及实现实例(3)
作者:佚名    文章来源:本站原创    点击数:    更新时间:2007-6-8
 
程序中使用了文件对象,这样在Upload.ASP中采用BinaryRead方法读来的原始数据就不仅仅是选择的文件本身的数据,还包含该文件在用户硬盘上的路径、类型、提交页面的表单等相关信息的描述,这样我们就需从中提取出文件的具体内容。根据分析,数据的头部信息与数据的分界线是两对回车换行符,尾部也有分隔信息,我们可以采用类似以下的方法获取文件数据。
  Dim FormData.FormSize,DataStart,CLStr,DivStr
  FormSize=Request.TotalBytes
  FormData=Request.BinaryRead(FormSize)
  CLStr=ChrB(13)&ChrB(10)
  DataStart=InStrB(FormData.CLStr&CLStr)+4
  '4是两对回车换行符的长度
  DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)
  DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2
  FormData=MidB(FormData,DataStart,DataSize)
  
    FormData就是文件的内容了。
  
    中间根据需要,可进行相应的处理。最后的工作就是将文件保存了。保存的方法可以有两种:一种是利用VB或VC之类程序中的二进制文件操作方法,在工程中加入适当的类型库,最终编译成DLL文件,使用时再将该DLL文件注册就可以了。文件存贮程序如下:
  Public Function SaveFile(Pathname As String) As String
      Dim objContext As ObjectContext
      Dim objRequest As Request
   Set objContext=GetObjectContext()
      Set objRequest=objContext("Request")
      '以下的一段代码是进行文件存贮的有关操作
   Dim FormData() As Byte,CLStr,DivStr
      Dim DataStart As Long,DataSize As Long
      DataSize=objRequest.TotalBytes
      Redim FormData(DataSize-1)
      FormData=objRequest.BinaryRead(DataSize)
      CLStr=ChrB(13) & ChrB(10)
      DataStart=InStrB(FormData,CLStr & CLStr)+4
      DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)
      DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2
      FormData=MidB(FormData,DataStart,DataSize)
      '创建一个二进制文件并将FormData写入其中
      Open Pathname For Binary As 1
      Put #1,,FormData
      Close #1
      SaveFile="OK!"
     End Function 
上下文章
  • 上一篇文章:

  • 下一篇文章:
  •  网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) 发表评论
     姓 名: * QQ:
     评 分: 1分 2分 3分 4分 5分
     评 论     内 容:
    相关信息
    乔客CMS3.0修改方法大全
    检测上传文件是否含有非法代码
    乔客论坛惊暴UPfile严重漏洞
    乔客漏洞击溃灰鸽子官方主站
    神州网第十一次合租服务器计划
    解决新云网站管理系统文章内容出现乱码问题
    去掉首页调用时超过规定字符时后面的省略号
    实现新云系统的幻灯效果