2009-11-26 79 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