台灣最大程式設計社群網站
線上人數
1391
 
會員總數:246690
討論主題:190103
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 如何取得fileupload中的完整路徑
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何取得fileupload中的完整路徑
價值 : 20 QP  點閱數:19160 回應數:12
樓主

KKMAN
初學者
814 22
891 131
發送站內信

有鑑於案子的需求,必須要寫一個在WEB上實現FTP上傳/下載的功能。
看了網路上很多文章過後,擷取以下程式碼。
但為了配合使用者,在讀取file部分需要使用到fileupload的元件。
可是,卻無法取得client端的完整路徑,
不知道各位大大是否有何種方法可以取得此路徑!!??
已經試過"FileUpload1.PostedFile.FileName"這個方式。
不過,經過測試,只有IE6才有支援,其餘瀏覽器皆已只顯示"filename"。
不知各位大大有甚麼好的解決方式。請指教!

此為aspx檔。


此為VB檔



目前卡住的點在於,file無法抓取完整路徑。

搜尋相關Tags的文章: [ fileupload ] , [ ftp ] , [ FtpWebRequest ] ,
本篇文章發表於2010-08-16 19:24
== 簽名檔 ==
取之於網路、用之於網路。
回答你的問題,也是我自己變強的一條路。

但若回答錯了還請見諒指教。
1樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
為什麼你需要 "使用者所上傳的檔案...的所在目錄"
本篇文章回覆於2010-08-16 20:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

天叢雲
捐贈 VP 給 天叢雲 檢舉此回應
基於安全性都會封鎖.

除非自己寫ActiveX,

不然要想其他方式替換.
本篇文章回覆於2010-08-17 09:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Dreamyi
捐贈 VP 給 Dreamyi 檢舉此回應
我自己測試:

Response.Write(FileUpload1.FileName) → 只取得檔名
Response.Write(FileUpload1.PostedFile.FileName) → 取得完整的路徑和檔名

瀏覽器 IE8
本篇文章回覆於2010-08-17 10:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

KKMAN
檢舉此回應
回小羊:因為我上傳至FTP的檔案需要檔案路徑。

回雲大:ActiveX是怎麼運作的呀!?
本篇文章回覆於2010-08-17 10:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
我的疑問是...

如果我今天上傳的檔案有...
C:\windows\system32\xxx.dll
D:\myBook\myShop\myMove\ABC.txt
Z:\abc\123.zip

那, 你真的要把檔案放在 C:\windows\system32\ 嗎?
如果你沒有 Z: 呢?


如果使用者是用Linux平台選擇檔案... 路徑會變成 \etc\dev\xxxxxxx
那你要存在哪裡?

本篇文章回覆於2010-08-17 12:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

hunterpo
捐贈 VP 給 hunterpo 檢舉此回應
我也想不透為什麼需要 Client 端的完整檔案路徑...,這對 FTP Server 端根本就無關緊要不是嗎?...

一般 FTP Server 的管理策略可能是依照登入者分別上傳到各自的資料夾,又或者依檔案類型分開存放,
對應 Client 端的完整檔案路徑來存放的作法實在未曾看過...
本篇文章回覆於2010-08-17 16:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

KKMAN
檢舉此回應
感謝各位大大的回應。
說實話,小弟目前也有點對於需要client端路徑產生疑惑。
會如此問的原因是,小弟在測試過後會於client端的完整路徑會成功。
所以,在此發問。
也請各位指教指教。

function Upload程式碼皆相同。故不再重覆。
所以,小弟好奇是否是無法抓取到fileupload在client端的完整路徑。
不知道,以上的回覆是否可以讓各位大大更加理解我想訴說的問題點。
本篇文章回覆於2010-08-17 17:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

KKMAN
檢舉此回應
忘記說明我的程式期望的功能。
1.User上傳檔案時,我除了將檔案上傳以外,同時將檔案存放路徑儲存在資料庫;並且加一組識別碼給這個檔案也存放在資料庫。
2.User要下載檔案時,直接給對方識別碼,在我得到識別碼號,與資料庫做比對,取出檔案路徑並且供使用者下載。
不知這功能導向,對於我目前的做法對否。
有點像7-11 I-bone線上檔案上傳後取得取件碼,在至7-11的i-bone輸入取件碼即可得到檔案的做法。
本篇文章回覆於2010-08-17 17:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
最有價值解答

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
你的問題是發生在...使用者上傳檔案時, 你並沒有儲存在Server的硬碟中..

例如:
我上傳了 D:\abc.zip
這時你必須先把 abc.zip儲存在Server的C:\temp\abc.zip

也就是說, file = "C:\temp\abc.zip"
然後再把執行 Upload(file, "ftp://ms.ntcb.edu.tw/www/", "s9056021", "9115")


這樣才能上傳到FTP
本篇文章回覆於2010-08-17 19:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
不錯的參考

天叢雲
捐贈 VP 給 天叢雲 檢舉此回應
你的流程改為三步驟:
1.先上傳到主機的目錄下.
2.利用主機的Server.MapPath取得主機的完整路徑,再用Upload由主機傳至ftp.
3.刪除主機的檔案.
本篇文章回覆於2010-08-18 09:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
不錯的參考

Alex
檢舉此回應
你的主機存放位置可以設定在web.config裡呀.
Client端的路徑你應不需要知道呀.
大約作法參考:

1.設定主機的存放目錄在web.config.比如


2.在要upload時,必須要加上 path (這是主機的存放目錄) & file 這樣你才可以上傳成功到主機上

3.識別碼是由你自己產生的,並且在資料庫有對應的資料,比如 識別碼=123 路徑=c:\webroot\files 檔名=123.jpg
這樣子對應到123時就可以取出檔案來下載了.

本篇文章回覆於2010-08-18 14:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

Forevertim
檢舉此回應
FileUpload.PostedFile.FileName;//完整路徑
FileUpload.FileName;//檔案名稱
應該只有這兩個分別
本篇文章回覆於2012-03-30 15:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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