使用asp:FileUpload Control
、Allow 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);