2009-11-26 24 views

回答

31

名嘗試value屬性,像這樣:

var fu1 = document.getElementById("FileUpload1"); 
alert("You selected " + fu1.value); 

注意 :它看起來像FileUpload1是一個ASP.Net服務器端FileUpload控件。
如果是這樣,你應該使用ClientID屬性來獲取它的ID,像這樣:

var fu1 = document.getElementById("<%= FileUpload1.ClientID %>"); 
+5

15秒,好工作X-) – 2009-11-26 16:55:38

1

嘗試

var fu1 = document.getElementById("FileUpload1").value; 
2

嘗試document.getElementById("FileUpload1").value這個值應該有一個文件的路徑進行上傳,只是帶所有的價值都來自這個價值,你將有文件名。

1

RaYell, 您不需要解析返回的值。 document.getElementById("FileUpload1").value僅返回帶擴展名的文件名。 這對我很有用,因爲我想將要上傳的文件的名稱複製到名爲'title'的輸入框中。在我的應用程序中,上傳的文件被重命名爲由後端數據庫生成的索引,標題存儲在數據庫中。

23

在google chrome element.value中返回名稱+路徑,但是是假路徑。因此,對於我來說,我使用的名稱屬性上的文件象下面這樣:

function getFileData(myFile){ 
    var file = myFile.files[0]; 
    var filename = file.name; 
} 

這是從頁面調用:

<input id="ph1" name="photo" type="file" class="jq_req" onchange="getFileData(this);"/> 
+0

給別人的提示:對於IE11,這並沒有爲我返回任何東西。 – Cordell 2017-02-27 22:47:47

+0

它在IE11中工作正常 – 2018-02-27 07:41:38

1

的形式使用這樣的代碼,我可以捕捉原源上傳文件名,將其複製到第二個簡單的輸入字段。這是因爲用戶可以在提交請求中提供備用上傳文件名,因爲文件上傳文件名是不可變的。

<input type="file" id="imgup1" name="imagefile"> 
     onchange="document.getElementsByName('imgfn1')[0].value = document.getElementById('imgup1').value;"> 
    <input type="text" name="imgfn1" value=""> 
+1

雖然此代碼段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有幫助以提高您的帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – Ferrybig 2016-02-24 09:44:41