台灣最大程式設計社群網站
線上人數
975
 
會員總數:244125
討論主題:188491
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 關於動態產生出來的上傳檔案部份
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於動態產生出來的上傳檔案部份
價值 : 20 QP  點閱數:228 回應數:9

樓主

想睡覺
初級專家
1333 278
4962 1290
發送站內信

以下是我的程式碼

想請問一下 為什麼用HttpPostedFile宣告的變數 抓的到檔案名稱,而使用FileUpload宣告的卻抓不到,這是為什麼 有人可以解釋一下嗎? 謝謝

搜尋相關Tags的文章: [ 動態 ] ,
本篇文章發表於2018-11-27 15:48
== 簽名檔 ==
在學習的過程中沒有結束的一天.
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

想睡覺
檢舉此回應
for (int i = 0; i < Request.Files.Count;i++)
本篇文章回覆於2018-11-27 15:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

想睡覺
檢舉此回應
sorry 補充一下 使用FileUpload宣告的變數 執行結果卻出現 並未將物件參考設定為物件的執行個體。
但我已經有new了 為什麼還是會有這樣的問題發生?
本篇文章回覆於2018-11-27 15:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

小羊窒息
捐贈 VP 給 小羊窒息 檢舉此回應
myFL = (FileUpload)Page.FindControl("files" + i);
當你上面這一行找不到東西時, myFL就是null,

對null進行存取, 當然就是[ 並未將物件參考設定為物件的執行個體 ]
本篇文章回覆於2018-11-27 17:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

想睡覺
檢舉此回應
那我可以問一下嗎? 為什麼 HttpPostedFile 卻能抓的到呢?
本篇文章回覆於2018-11-28 09:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
FileUpload,就小喵所知
這是上傳檔案的html控制項
檔案的挑選是由Client端,使用者透過<input type="file">去瀏覽選擇
之後送出,才能夠去讀出使用者選擇的檔案

但從程式碼來看
New完FileUpload物件,就『立刻』要去讀取該物件的檔案名稱
Client端的html都還沒產生出來,更別說是使用者挑選檔案
這樣怎麼讀的到檔案名稱呢?

您想想
^_^
本篇文章回覆於2018-11-28 09:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

小羊窒息
捐贈 VP 給 小羊窒息 檢舉此回應
沒有為什麼呀, 本來就抓的到呀...

你問錯問題了, 你應該問的是
【為什麼別人的FileUpload1.FileName能抓到檔名, 我的FileUpload1.FileName卻抓不到呢】

============================

(題外話, 現在大概已經沒人在意的部份)
http://www.blueshop.com.tw/board/show.asp?subcde=BRD200907271057525PI&odr=cdt&odrtyp=0

本篇文章回覆於2018-11-28 10:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

MIS2000 Lab
檢舉此回應
我覺得 topcat說得有道理


想抓到人家上傳的檔案名稱
至少要把「抓檔案名稱」這件事,寫在 Button_Click事件裡面吧?
本篇文章回覆於2018-11-29 08:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

想睡覺
檢舉此回應
感謝各位大大們的指點,我已經知道原理了,謝謝您們 :)
本篇文章回覆於2018-11-29 10:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

想睡覺
檢舉此回應
補充一下 MIS2000 Lab 提到
想抓到人家上傳的檔案名稱
至少要把「抓檔案名稱」這件事,寫在 Button_Click事件裡面吧?


這部份是有的,但因為是動態產生的fileupload 導致 用findcontrol 是抓不到 而用 HttpPostedFile是抓的到的

小羊窒息 提到 null的問題 這部份我是沒有想到
所以將產生動態findupload元件的寫法 寫在page_load裡面 這樣每點擊一次 就會觸發postback 而產生動態元件,
就能使用findcontrol 抓到fileupload元件的資料了

如果我的說法有錯的話,歡迎跟我說正確的觀念 謝謝您們
本篇文章回覆於2018-11-29 16:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.