台灣最大程式設計社群網站
線上人數
1165
 
會員總數:246690
討論主題:190103
歡迎您免費加入會員
討論區列表 >> Java Script/ Node.js >> 請問檔案上傳,抓檔案路徑(用另一個button觸發file物件方法)
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問檔案上傳,抓檔案路徑(用另一個button觸發file物件方法)
價值 : 30 QP  點閱數:5628 回應數:12
樓主

evans
初學者
53 62
720 122
發送站內信

捐贈 VP 給 evans
請教各位大大們
因為在頁面修改時,要將檔案名稱放到頁面上
但是file的value又是唯讀性的
在爬文時,看到Bryanv大大提供的變通方法
就是用文字欄位+按鈕來取代,讓file隱藏起來
可是我在修改要submit出去時,卻抓不到file物件的資訊
後來用個sample去測,發現在submit時file物件的value都會被清空
所以造成我在後端抓不到file物件的各種值
想請教大大們,有什麼方法可以修正這種問題?
還有另一個問題是,為什麼file物件抓出來的value少了路徑,只有檔名?
怎樣抓值才能夠連用路徑一起抓到值呢?
我測試的code如下


本篇文章發表於2006-07-20 11:04
1樓
server side接file欄位
因為是upload,你試著用upload的方式,看server可否收到檔案
本篇文章回覆於2006-07-20 11:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

evans
捐贈 VP 給 evans 檢舉此回應
恩,我現在按submit出去後,它都會先清掉file 物件的value
而且就停在同一個畫面,要再去按一次submit,才會真正開始去run後端的code
但是這時候我的file物件已經沒值了,所以後端也接不到file了


不知道大大指的方法是?
本篇文章回覆於2006-07-20 11:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
TRY

是submit後才clear的
本篇文章回覆於2006-07-20 11:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

evans
捐贈 VP 給 evans 檢舉此回應
run的結果是沒有到後端去跑
不知道為什麼,
但如果是直接按那一個file元件
就能夠正常運作了~~
繼續測看看是哪出了問題~~~
本篇文章回覆於2006-07-20 13:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

evans
捐贈 VP 給 evans 檢舉此回應
恩,還是不行.....
另一個button去獨發file物件
為什麼submit出去不會去執行後端的code?
本篇文章回覆於2006-07-20 16:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
你把
name="Submit"
改為
name="Submit1"

name="file"
改為
name="file1"

當然js的file也要改為file1

然後再try try看
本篇文章回覆於2006-07-20 16:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

evans
捐贈 VP 給 evans 檢舉此回應
大大,我在Server端取值的寫法如下

這樣的寫法是ok的嗎?
在爬文時,看到有位大大提到如果用button去獨發file的瀏覽檔案的話
Server端取值的方式要改變
但是沒有提供要如何改變...
本篇文章回覆於2006-07-20 17:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
我明天試試
本篇文章回覆於2006-07-20 22:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
這個做法for ie only
在ff點button無法觸發file的click()

同時也發現
雖然在ie時,js是ok的,但卻無法submit出去,出現"存取被拒"
所以這種方式實際上是行不通了
本篇文章回覆於2006-07-21 10:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
我有看到另一種做法
http://www.quirksmode.org/dom/inputfile.html
我沒玩過
有興趣就自己try try吧
本篇文章回覆於2006-07-21 10:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

evans
捐贈 VP 給 evans 檢舉此回應
感謝大大提供的方法和資料
我會去try看看~
有結果再po出來和大家分享 :)
本篇文章回覆於2006-07-21 22:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

星燁
檢舉此回應
在下本來也遇到這個問題... 存取被拒...

在下的情況 本來是用

Image img = new Image();

img.ImageUrl = url;

img.Attributes.Add("onclick", "document.getElementById('" + FileUpload1.ClientID + "').click();");

FileUpload1.Attributes.Add("onchange", "update_click();");

<script language="javascript" type="text/javascript">
function update_click() {
document.getElementById('Button_update').click();
}
</script>

一樣是遇到相同問題

不過改成

ImageButton img = new ImageButton();

img.ImageUrl = url;

img.OnClientClick = "document.getElementById('" + FileUpload1.ClientID + "').click(); return true; ";

FileUpload1.Attributes.Add("onchange", "setTimeout('update_click()', 500);");


就莫名通過了...

分享一下...
本篇文章回覆於2014-07-08 17:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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