asp无惧上传类2.2上传文件的同时,通过 Request.QueryString将参数传递到保存页面中

先转一段文字,对不对再评论

在后台asp程序中,以前获取表单提交的ASCII 数据,非常的容易。但是如果 需要获取上传的文件,就必须使用Request对象的BinaryRead方法来读取。BinaryRead方法是对当前输入流进行指定字节数的二进制读取,有点需要注意的 是,一旦使用BinaryRead 方法后,再也不能使用Request.Form 或  Request.QueryString 集合了。结合Request对象的TotalBytes属性,可以将 所有表单提交的数据全部变成二进制,不过这些数据都是经过编码的。

好像不全对 ,蓝色字体这里好像有 问题,用淘宝开店无惧上传类2.2(作者好像说是2.0,也许有人改动过)上传文件时,Request.Form就是不能用,和该类冲突。这个也许就是以为蓝色字体提到的原因,可是Request.QueryString可以用。为了解决传文件的同时,要传递变量值,我使用的方法是:

如果设置批量上传,则通过文件上传xml到服务器然后写入mdb,如果不是批量上除,单个例如则用form提取变量值。

批量是时候,将tea_savework.asp递交地址改写成?piliang=true&。。。。。其他变量值,就是下面的代码:

if piliang="" then
%>
<form name="form1" method="post" action="tea_savework.asp">
<%else%>
<form name="form1" method="post" action="tea_savework.asp?piliang=true&cla_id=<%=set_cla_id%>&sub_id=<%=set_sub_id%>&ter_id=<%=set_ter_id%>&bwc_id=<%=set_bwc_id%>" enctype="multipart/form-data">
<%end if%>

.....

<%if piliang = "on" then %> 请选择上传成绩的Excel文件(必须使用模板创建的成绩文件)<input name="wenjian" type="file" > <% end if%>
                <input type="submit" name="Submit3" value="录入全班考试成绩">
    <input name="bbs_count" type="hidden" id="bbs_count" value="<%=i%>" size="2">
       <input name="cla_id" type="hidden" id="cla_id" value="<%=set_cla_id%>" size="2">
       <input name="sub_id" type="hidden" id="sub_id" value="<%=set_sub_id%>" size="2">
       <input name="ter_id" type="hidden" id="ter_id" value="<%=set_ter_id%>" size="2">
       <input name="bwc_id" type="hidden" id="bwc_id" value="<%=set_bwc_id%>" size="2">

-------------------------------------------------------------------------------------------------------------------------

tea_savework.asp中的保存代码:

test=0
  if request.querystring("piliang")="true" then
    cla_id=Request.QueryString("cla_id")
    ter_id=Request.QueryString("ter_id")
    sub_id=Request.QueryString("sub_id")
    bwc_id=Request.QueryString("bwc_id")
    call savefile()  ‘先得到变量值,然后保存文件,具体代码不写了。 
    test=1
  else
    bbs_count=Request.form("bbs_count")
    bbs_count=request.form("bbs_count")
    cla_id=request.form("cla_id")
    ter_id=request.form("ter_id")
    sub_id=request.form("sub_id")
    bwc_id=request.form("bwc_id")
  end if

在使用该类的同时,不能通过request.form获取参数,和该类中读取文件的操作冲突,怀疑是用了上面蓝色字体提到的方法,将form中的参数破坏了,如果先使用form获取参数,那么该类就无法读取文件。。。。。。所以用querystring获取?后面的变量值,然后再创建类实现读取上传的二进制文件,并保存。

TMD好久没搞asp了,手里所有的书里 关于asp保存文件都没提,浏览器对这个递交文件的格式是应该是统一的,但是asp对他 处理的方式比较特殊,原来以为用form可以将参数值获取,再用类读上传的二进制文件,现在看来好像二者是冲突的,用form得到参数,好像会破坏递交的数据,是不是form方法对二进制文件进行了格式处理,这样不能用

BinaryRead 方法读了???不知道!!!

也许用form方法得到参数值之后,是不是可以用其他方法得到上传的二进制文件?我想微软的asp应该有自己的方式,不应该会破坏上传的二进制文件。只是不知道用什么方式,现在到处都是转载,乱转,,,,,分析的人少,即使分析的也是N年(估计大约是04年左右的文章)前分析的,应该不透彻。

好久没说话了,自己都不知道自己说了些什么,乱。。。。。。给自己看就行了,当做笔记。大家就不要看了~~~~

时间: 2024-10-17 03:42:17

asp无惧上传类2.2上传文件的同时,通过 Request.QueryString将参数传递到保存页面中的相关文章

ASP.NET 4.0 设定 了 validateRequest="false" 仍然会出现 具有潜在危险 Request.QueryString 的错误消息

摘要:ASP.NET 4.0 设定 了 validateRequest="false" 仍然会出现 具有潜在危险Request.QueryString的错误消息 微软的asp.net网页都会默认进行Request Validation,但若是想规避这样的内建行为.(建议仍要有其他的方法来防范XSS攻击) 通常我们可以在.aspx中的Page Tag设定: ? 或是直接对整个站台设定Web.Config中??下设定全域的 不过,假如你现在在ASP.NET 4.0 的环境下的话,就算进行上

Ueditor 1.4.3.1 使用 ThinkPHP 3.2.3 的上传类进行图片上传

在 ThinkPHP 3.2.3 中集成百度编辑器最新版 Ueditor 1.4.3.1,同时将编辑器自带的上传类替换成 ThinkPHP 3.2.3 中的上传类. ① 下载编辑器(下载地址:http://ueditor.baidu.com/website/download.html),解压后放入项目根目录的 Data 目录并且将解压出来的目录重命名为 ueditor. 项目中的控制器 ./Application/Admin/Controller/BlogController.class.php

使用ThinkPHP上传类处理KindEditor上传的图片

KindEditor作为一款可视化的HTML编辑器用起来确实比较方便,其本身也自带了图片上传的处理这里修改为TP上传处理图片,是为了保证上传图片的方便(目录独立于编辑器,便于增加水印等处理) 第一步:在模板html页面引入如下文件: <link rel="stylesheet" href="/data/editor/plugins/code/prettify.css" /> <script charset="utf-8" src

艾恩ASP无组件上传类(上传组件)说明文档(from www.sysoft.cc)

艾恩ASP无组件上传类(上传组件)说明文档2010-1-18 By Anlige一.简介自从接触ASP就开始接触上传,看过一些上传类,但是总感觉封装的还是不够简单,因此自己尝试写一个能够用最少最简单的代码实现各种上传方式的上传类.在学校期间就开始写,一点点的完善.优化,到现在的版本,现在的版本能适应各种上传方式.上传类的主要的功能如下:1.自由设置最大上传大小.单文件最大上传大小2.自由设置允许上传的文件类型3.可设置文本的编码,以适应各种上传环境4.内置进度条,a用户可选择开启和关闭5.多种错

ASP.NET 文件上传类 简单好用

调用: UploadFile uf = new UploadFile(); //参数设置 //uf.SetFilePath="" 设置保存路径,默认为upload //uf.SetFileType=".exe" 设置允许的后缀格式,默认为.pdf,.xls,.xlsx,.doc,.docx,.txt //uf.SetMaxSizeM=100 设置最大上传大小 默认10M //执行保存 uf.Save("file" /*input file 的 n

ajax结合文件上传类进行多文件的单个上传

今天做项目的时候碰见一个问题:之前一个同事离职之前做了一个网站,有一个上传商品详细图片的功能,当时已经完成,但是由于后期程序的有更改以及更改的程序员的水平也是参差不齐,最后导致程序bug很多,由于当时用的是一个框架,最终也没找到说明文档,后来我就重新写了一个结合ajax上传文件的upload.classs.php虽然界面欠缺美观,但是通俗易懂好维护. //首先是页面. index.php <!DOCTYPE html> <html lang="en"> <

面向对象中的文件上传类

<?php /** *文件上传类 * **/ class Upload { //上传到哪个目录 protected $path = './upload/'; //准许的MIME protected $allowmime = ['image/png','image/jpg','image/jpeg','image/pjpeg','image/bmp','image/wbmp','image/gif','image/x-png']; //准许的后缀 protected $allowsubfix = 

无惧上传类修改版ASP

<%OPTION EXPLICIT%><%class clsUp '文件上传类'------------------------Dim Form,FileDim AllowExt_ '允许上传类型(白名单)Dim NoAllowExt_ '不允许上传类型(黑名单)Private oUpFileStream '上传的数据流Private isErr_ '错误的代码,0或true表示无错Private ErrMessage_ '错误的字符串信息Private isGetData_ '指示是否

一个能防止改名木马漏洞的无组件上传类

现在流行的asp上传组件除了无惧的化境之外,最多的可能就是ewebEditor 和Fckeditor的上传是,但是经过测试都很难防止改名为gif和asp文件上传,在FckEditor中改名后的asp木马不能直接上传,系统会检测到 <%等字符而拒绝,但是经过修改后的asp木马再改名为gif后却可以顺利上传,如在文件前端加上许多空行,或对木马进行加密处理.当然有人会认为木马传到服务器后会被杀掉,但是做过免杀的木马却会漏网.基于这些原因,本人开发了一个可以从根本上解决这个问题的无组件上传类.经过测试常