从客户端的FileUpload控件获取所有文件名



使用asp:FileUpload ControlAllow Multiple = True。当我运行以下javascript脚本时:

<script type="text/javascript">
$(document).ready(function () {
$('#<%=fileUploader.ClientID%>').change(function () {
debugger;
$('#<%=lblFileNames.ClientID%>').text("Files: ");
var path = $(this).val();
var i;
var files = path.split(',');
var indFiles = "Files: ";
for (i = 0; i < files.length; i++) {
files[i] = files[i].substring(files[i].lastIndexOf('\') + 1);
indFiles = indFiles + i + ":" + files[i] + "; ";
}
$('#<%=lblFileNames.ClientID%>').text(indFiles);
})
})
</script>

IE/Mozilla上的var path = $(this).val()返回我选择的所有分隔文件,但在chrome上只返回第一个选择的文件。

问题

1( 为什么Chrome会这样做,而不是IE/Mozzilla浏览器中的行为。

2( 在客户端有办法解决这个问题吗?我知道服务器端的"解决方案",但出于我的目的,我需要通过客户端的javascript来完成。

您可以使用this.files中提供的文件列表

var files = [];
var indFiles = "Files: ";
for (i = 0; i < this.files.length; i++) {
files[i] = this.files[i].name;                
indFiles = indFiles + i + ":" + files[i] + "; ";
}
$('#<%=lblFileNames.ClientID%>').text(indFiles);

最新更新