javascript - 从用户指定的文件名在 Javascript 中打开文件

标签 javascript html

我想用 Javascript 打开用户从本地文件系统中选择的文件。我可以获取文件名,但不知道如何打开它。

<form action='' method='POST' enctype='multipart/form-data'>
    <input id="archiveFile" type='file' name='userFile'><br>
    <script>
        archiveFile.onchange = function (e)
        {
            console.log(archiveFile.value);
            // open the file here
        }
    </script>
</form>

最佳答案

您需要 HTML5 FileReader Api,更多信息如下:https://developer.mozilla.org/en-US/docs/Web/API/FileReader

这是一个使用 Flash 的 polyfill:https://github.com/Jahdrien/FileReader

这是一篇制作非常精良的文章:http://www.html5rocks.com/en/tutorials/file/dndfiles/#toc-reading-files 它几乎解释了一切。

工作示例:

function FileReaderCtrl() {
  var self = this;
  var field = document.getElementById('fieldFile');
  var result = document.getElementById('result');
  
  self.readFile = function(event) {
    var res = event.target.result;
    var image = '<img src="'+ (res || '') +'"/>';
    result.innerHTML = image;
    console.log(image);
  };
  
  field.onchange = function(event) {
    var files = field.files;
    var reader;
    if(files.length < 1) {
      return;     
    }
    
    reader = new FileReader();
    reader.onload = self.readFile;
    reader.readAsDataURL(files[0]);
    
  }
}

document.addEventListener('DOMContentLoaded', FileReaderCtrl);
#result {
  width: 200px;
  height: 200px;
  
  background: lightcoral;
  margin: 1em auto;
}
img {max-width: 100% }
<label for="fieldFile">Select an Image:<br><input type="file" id="fieldFile"/></label>
<div id="result"></div>

关于javascript - 从用户指定的文件名在 Javascript 中打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36185693/

相关文章:

javascript - JQuery If/Else 显示 1 个字段并隐藏另一个字段

jquery - csstoggleClass 无法正常工作

javascript - 如何突出显示 HTML 中的当前 id 元素

javascript - CSS 动画在 Firefox 中不起作用

javascript - 从 Javascript 模块中的父作用域继承变量

javascript - innerHTML 和事件委托(delegate)

javascript - 显示代码时遇到问题

javascript - 有没有办法进一步压缩这段 JavaScript 代码?

html - Oshin 喜欢 html 模板

jquery - 如何将超链接添加到表格行 <tr>