欢迎光临
我们一直在努力

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

建站超值云服务器,限时71元/月

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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP无组件上传图片的基本方法
分享到: 更多 (0)