如何在javaScript中获取本地文件名并将其保存为变量以供以后使用?

时间:2019-06-09 19:51:01

标签: javascript

获取本地数据文件并读取

我找到了函数showName(),但未能完成

<p><input type="file" id="fileInput" onchange="showName()" /></p>
<script>
    function showName(){  
        window.name=document.getElementById('fileInput');
        console.log('Selected file: ' + window.name.files.item(0).name);
        console.log('Selected file: ' + window.name.files.item(0).size);
        console.log('Selected file: ' + window.name.files.item(0).type);
    }   
    function fName(){  
        alert(window.name);
    }
    showName();
    fName();
</script>

我希望保存文件名以便以后使用,但是我什么也没得到。

3 个答案:

答案 0 :(得分:0)

仅在选择文件后,才能调用showName()fName()

function showName(field) {
  window.fakepath = field.value;
  window.filename = field.files.item(0).name;

  fName();
}

function fName() {
  alert('filename: ' + window.filename);
  alert('fakepath: ' + window.fakepath);
}
<p><input type="file" id="fileInput" onchange="showName(this)" /></p>

顺便说一句,您在函数定义中遇到了意外的问号。

答案 1 :(得分:0)

首先,不建议将数据存储在窗口对象上,特别是如果可以避免的话。此外,您不能覆盖窗口上的name字段,因为它始终是一个字符串。

这里与您的解决方案非常相似,使用局部变量fileData。 另外,似乎应该在输入更改后调用fName函数,因此我还添加了必要的行。

<p><input type="file" id="fileInput" onchange="showName()" /></p>
<script>
    let fileData;
    function showName(){  
        fileData=document.getElementById('fileInput');
        console.log('Selected file: ' + fileData.files.item(0).name);
        console.log('Selected file: ' + fileData.files.item(0).size);
        console.log('Selected file: ' + fileData.files.item(0).type);
        fName();   /// added this to run fName when input changes
    }   
    function fName(){  
        console.log(fileData);
    }
</script>

答案 2 :(得分:-1)

访问通过Dom选择器输入的文件:

var selectedFile = document.getElementById('input').files[0];

然后访问如下属性:

var name = selectedFile.name