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

上传|上传图片|无组件

  下面是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表单的相同方法,处理包含文件上载元素的表单。

时间: 2024-10-30 02:00:47

ASP无组件上传图片的基本方法的相关文章

ASP无组件上传图片的源代码

上传|上传图片|无组件|源代码 <!--#include file="upload_5xsoft.inc"--><%Set conn=Server.CreateObject("Adodb.Connection")connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("db.mdb")conn.open conns

带进度条的ASP无组件断点续传下载

无组件|下载 <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%Option Explicit%> <% '================================== ''带进度条的ASP无组件断点续传下载 ''================================== '简介: '1)利用xmlhttp方式 '2)无组件 '3)异步方式获取,节省服务器资源 '4)服务器到服务器的文

Asp无组件生成图片的缩略图的方法

缩略图|无组件 网上有不少生成缩略图的ASP组件.若你的虚拟空间不支持注册新组件,可能会感觉自己的网站失色不少.心晴不才,结合网上资源写了个无组件生成缩略图程序,仅供参考. 还是先看看基础部分吧.首先,我们知道在页面中显示图片是如下代码: <img src="http://www.webjx.com/htmldata/2005-10-15/pic.gif" border="0" width="300" height="260&qu

ASP无组件上传错误 ASP 0104的解决方法

错误|解决|上传|无组件 问题描述:ASP无组件上传程序无法上传较大的文件"Request 对象 错误 'ASP 0104 : 80004005'",(大概大于100kb就不行),但是原先在2000 server中可以上传5m左右的文件. 解决方法:在IIS属性中选中"允许直接编辑配置数据库",然后.在服务里关闭iis admin service服务找到windows\system32\inesrv\下的metabase.xml编辑其中的ASPMaxRequestE

asp上传出错-win2008 服务器 无组件上传图片 小于100K提示参数错误

问题描述 win2008 服务器 无组件上传图片 小于100K提示参数错误 win2008 服务器 无组件上传图片 小于100K提示参数错误 程序本地测试没问题上传到服务器上就这个问题很纠结

Asp无组件生成缩略图

网上有不少生成缩略图的ASP组件.若你的虚拟空间不支持注册新组件,可能会感觉自己的网站失色不少.心晴不才,结合网上资源写了个无组件生成缩略图程序,仅供参考. 还是先看看基础部分吧.首先,我们知道在页面中显示图片是如下代码: <img src="http://edu.cnzz.cn/NewsInfo/pic.gif" border="0" width="300" height="260"> src是图片路径,bord

如何实现asp无组件生成缩略图

  网上有不少生成缩略图的ASP组件.若你的虚拟空间不支持注册新组件,可能会感觉自己的网站失色不少.心晴不才,结合网上资源写了个无组件生成缩略图程序,仅供参考. 还是先看看基础部分吧.首先,我们知道在页面中显示图片是如下代码:     <img src="pic.gif" border="0" width="300" height="260"> src是图片路径,border控制图片边缘宽度,width是图片的长度

Asp无组件生成缩略图的代码_应用技巧

  还是先看看基础部分吧.首先,我们知道在页面中显示图片是如下代码: <img src="pic.gif" border="0" width="300" height="260"> src是图片路径,border控制图片边缘宽度,width是图片的长度,height是图片的高度.缩略图的生成其实就是在原始尺寸上缩放.但一般为了尽量少失真,我们都会按比例缩放.于是,获取图片的长宽尺寸也就成了生成缩略图的重点. 下面便

Asp无组件生成缩略图的代码

还是先看看基础部分吧.首先,我们知道在页面中显示图片是如下代码: <img src="pic.gif" border="0" width="300" height="260"> src是图片路径,border控制图片边缘宽度,width是图片的长度,height是图片的高度.缩略图的生成其实就是在原始尺寸上缩放.但一般为了尽量少失真,我们都会按比例缩放.于是,获取图片的长宽尺寸也就成了生成缩略图的重点. 下面便是编