asp無懼上傳類2.2上傳檔案的同時,通過 Request.QueryString將參數傳遞到儲存頁面中,querystring

來源:互聯網
上載者:User

asp無懼上傳類2.2上傳檔案的同時,通過 Request.QueryString將參數傳遞到儲存頁面中,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年左右的文章)前分析的,應該不透徹。


好久沒說話了,自己都不知道自己說了些什麼,亂。。。。。。給自己看就行了,當做筆記。大家就不要看了~~~~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.