2

您创建一个浏览按钮并让用户浏览目录,直到他选择一个文件。并且整个路径和文件名出现在浏览按钮复合体的文本元素中。那么,如何打开该文件以提取数据并对其采取行动呢?

这是我在这方面的进展:

    <div id="browseFile" style="z-index: 1; left:-1040px; width:400px">
        <input id="browse4File" name="/static/Import/Example Portfolio 1.csv" type="file" accept="text/plain" maxlength="200" style="left:20px; width: 200px;" /><br/>
        <span style="position:relative;top:72px; left:320px; top:73px;">
            <!--<button type="button" onclick="javascript:importFile()" style="font-size:16px;">Save</button>-->
            <button type="button" onclick="javascript:u=document.getElementById('browse4File').value ;alert(u);" style="font-size:16px;">Save</button>
        </span>
    </div>

并且 Alert() 确实显示了文件名,但没有显示路径。安全问题……没问题!但是我怎样才能打开这个文件?我将其发送到后端吗?我在带有cherrypy的服务器上使用Python。

或者 JavaScript 可以提取文件的内容吗?

请帮忙...

TIA

肯恩

4

1 回答 1

2

使用 html 4 是不可能的,使用 html 5 您可以使用文件 API。在此处查看浏览器支持

前任:

function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object

    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) {

      // Only process image files.
      if (!f.type.match('image.*')) {
        continue;
      }

      var reader = new FileReader();

      // Closure to capture the file information.
      reader.onload = (function(theFile) {
        return function(e) {
          // Render thumbnail.
          var span = document.createElement('span');
          span.innerHTML = ['<img class="thumb" src="', e.target.result,
                            '" title="', escape(theFile.name), '"/>'].join('');
          document.getElementById('list').insertBefore(span, null);
        };
      })(f);

      // Read in the image file as a data URL.
      reader.readAsDataURL(f);
    }
  }

  document.getElementById('files').addEventListener('change', handleFileSelect, false);

演示:小提琴

于 2013-03-08T00:41:35.060 回答