FileUpload獲取不到路徑的問題

2021-05-06 11:25:54 字數 1502 閱讀 3485

在一本書上發現的問題   到時只是練練手  發現當我用    uploadfile.postedfile.filename 獲取完整路徑的時候盡然獲取不到   從網上找能很多資料   發現都是能夠獲取到的   因為只是新手  所以百思不得其解   於是找到了書的作者   讓他幫忙看看    發現最後是瀏覽器的問題在ie6是可以獲取到的   ie8就只能獲取名稱了  

以下是哪位作者解決的思路:

**位址:http://www.cnblogs.com/szw/archive/2009/08/31/1557480.html

這個問題源自一位熱心而且踏實的讀者,發現《

asp.net 3.5+sql server**模組化開發全程實錄

》中第117頁的一段例項**:

using

system;

using

system.web;

using

system.web.ui;

using

system.web.ui.htmlcontrols;

public

partial

class

uploadfile : system.web.ui.page}

經過這位朋友的嚴格跟蹤測試,發現postedfile.filename並不是「獲取檔名的完整路徑」,而只是檔名。

起初我也愣了一下,於是趕緊測試,發現確實是檔名,而不是完整路徑。但是在我記憶中,非常確定這個方法是可以獲取到完整路徑的。於是靜下心來一想,真相只有乙個——瀏覽器!

著手驗證。

上傳本地物理路徑的檔案d:/testupload.jpg。

用ie7/ie8獲取postedfile.filename結果如下:testupload.jpg。

用ie6獲取postedfile.filename結果如下:d:/testupload.jpg。

同時使用httpwatch跟蹤了一下,發現從post的環節上,就已經顯現出上述差別:

於是問題已經本明了了:不同的瀏覽器對於post的值(一般這個值中包含了兩個資訊,分別是[路徑+]檔名以及contenttype)有所差別(其本質除了瀏覽器的行為因素外,還有預設安全設定的問題)。

因此得出乙個更加周全的處理建議:使用fileupload控制項在獲取檔名的時候,盡量使用 path.getfilename(uploadfile.postedfile.filename)這樣的方法,將其視同完整路徑來處理,這樣可以使任何瀏覽器下面都能得到正確的檔名,而不會包含路徑(書本中用了乙個比較繁瑣的過程過濾路徑,僅供學習之用:))。

起先我在本機很容易就獲取了完整的路徑,不過經過幾位朋友的提示,發現遠端訪問的時候還是會有問題,看來這確實是件難事了,不過這本身也就是瀏覽器安全性的體現,關於非要從客戶端獲取完整路徑的問題我就不鑽牛角尖了:)

spring vaule獲取不到值

1 當springmvc與spring整合使用的時候,在controller中無法獲取 value對應的值。剛開始我就是這種情況,2 在service或者dao層無法獲取 value的數值。那麼,當需要載入多個properties的時候,如何解決?可以用下面的方法 這樣,將所有需要載入的proper...

Jquery獲取不到元素

最近在做需求時,需要獲取乙個div的id對該div包裹的畫面進行刪除。var deletecharts combinationdeleteid delchartarray j deletecharts remove 刪除選 在這裡插入 片 中的單個生成畫面 然後發現無論如何都刪除不掉,原因為無法獲取...

ajax post data 獲取不到資料

ajax post data 獲取不到資料,注意 content type的設定 post get 關於 jquery data 傳遞資料。網上各種獲取不到資料,亂碼之類的。好吧今天我也遇到了,網上一查各種糾結。亂碼不管先看獲取不到資料。因為之前一直用jquery ajax get的方式傳遞引數,預...