Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > ASP > ASP无组件上传图片的基本方法
【标  题】:ASP无组件上传图片的基本方法
【关键字】:方法,ASP,组件,上传,图片,AS,ASP
【来  源】:网络

ASP无组件上传图片的基本方法

Your Ad Here 下面是ASP无组件上传图片的一个例子:

<html>
<head><title>文件上传</title></head>
<body>
<form enctype="multipart/form-data" action="upload.asp" method="post">
请选择要上传的文件: <br>
<input name="picture" type=file accept="image/*"><br>
<input type=submit value="上传"></form>
</body>
</html>

当html文件在Netscape Navigator(3.0以上版本)或Internet Explorer(4.0以上版本)下显示时,“浏览”键旁边会出现一个看上去很普通的文本框。用户可直接将文件名键入文本框,或用“浏览”键从文件对话框中选择一个文件。提交该表单时,用户所选文件被同时提交。
<form>标签的enctype特征规定了请求表单信息的编码类型。表单信息一般采用URL编码制。不过上传文件时,必须用enctype="multipart/form-data"特征。
实际的文件上载键用下面的标签创建:
<input name="picture" type=file accept="image/*">
因为type的特征值是file,所以浏览器会创建一个文件上载键。accept特征限制了在文件对话框中出现的特定文件,这种情况下文件类型限制为图文件。可以规定任何MIME类型的清单作为accept的特征值。
文件上载键非常有用,遗憾的是许多浏览器只是部分支持上载键。例如Netscape Navigator(3.0及4.0版本)忽略了accept特征,IE 3.0版本甚至更差,它完全不能解释上载键,而是显示普通的文本框。不过IE 4.0和5.0版本可识别文件上载键。
创建带文件上载键的html表单只是上传文件的第一步,提交带上载键的文件不能用request对象的普通方法获得文件内容。ASP中request对象有专门用作此目的的特殊方法。当表单被邮递后,request对象的BinaryRead()方法用来读取提交的原始字节。注意:一旦在ASP中使用了BinaryRead()方法,就不能用普通的Request.Form()方法获取表单数据了(反之亦然)。
假定用户使用前面提到的表单提交了一幅图片,那么可以用下面的脚本获取并显示提交的原始字节。

<%
FormSize=Request.TotalBytes
FormData=Request.BinaryRead(FormSize)
Response.BinaryWrite FormData
%>

上面的脚本用Request对象的TotalBytes特征获取送入http站点的字节数。然后,所有的表单数据被赋给名为FormData的变量。最后用Response对象的BinaryRead()方法输出上载的数据内容。
但是用这种方法输出的脚本不是完全可读的,它包含上载文件的所有原始数据及有关该文件内容的重要信息。
得到数据后可以保存在数据库中、文件中或仅仅显示它,甚至可以快速地改变原始图像数据来创建定制图像。下面的脚本去掉了文件头,并显示作为图像在浏览器上载的文件。

<%
FormSize=Request.TotalBytes
FormData=Request.BinaryRead(FormSize)
bnCRLF=chrB(13) & chrB(10)
Divider=LEFTB(FormData,INSTRB(FormData,bnCRLF)-1)
DataStart=INSTRB(FormData,bnCRLF & bnCRLF)+4
DataEnd=INSTRB(DataStart+1,FormData,divider)-DataStart
Response.ContentType="image/gif"
Response.BinaryWrite MIDB(FormData,DataStart,DataEnd)
%>

上面的脚本用INSTRB()函数从表单数据中摘出图象数据,找到起始位置。它假定图象数据以两个回车和换行符开始,并以同样的分隔符结束。然后用Response对象的ContenType规定送入浏览器的内容是GIF图象。最后用BinaryWrite()方法输出数据。图片就显示在浏览器上。
上面的脚本假定提交的表单只包含一个含有图像数据的域。不过包含文件上载元素的html表单还可包含其他标准元素,例如文本框、文本区等。
尽管可以用标准的ASP脚本处理复杂的表单,但最好还是使用第三方ASP组件,可以用与处理标准html表单的相同方法,处理包含文件上载元素的表单。
关于web应用程序的范围与session变量丢失问题的深入研究!:【上一篇】
怎样直接显示"Monday"等星期的ASP语句?:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 计算机启动更快的十五招
  • 光互联网和量子互联网
  • 【蛙蛙推荐】.NET 2.0里使用强类型数据创建多层应用
  • WINDOWS 2003 实用小技巧(自动登录)
  • 今天看了一遍c,把昨天的一道群硕笔试题做了一下
  • 用AS模拟电流效果
  • 玩转Java的CLASSPATH(二)Classpath工具
  • 用iptales实现包过虑型防火墙
  • 使用Novell SuSe Linux9.3 的初步感受
  • 用重写FORMAT方法来实现 .NET 的自动文本缩减
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.