如何在不提交表单的情况下从输入字段获取文件路径


how to get file path from input field without submitting the form?

我想让用户选择一个文件。路径位置应存储在JavaScript字符串中。稍后,在验证之后,我想对服务器进行ajax调用,以便使用PHP将文件上传到服务器。

我不想直接提交表单,因为页面会重新加载,并且执行了许多sql查询,服务器上会有不必要的加载。

    <input type="file" id="files" name="files[]" multiple />
    <output id="list"></output>
    <script>
      function handleFileSelect(evt) {
        var files = evt.target.files; // FileList object
        // files is a FileList of File objects. List some properties.
        var output = [];
        for (var i = 0, f; f = files[i]; i++) {
          alert(JSON.stringify(f));
          output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
                      f.size, ' bytes, last modified: ',
                      f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a',
                      '</li>');
        }
        document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
      }
      document.getElementById('files').addEventListener('change', handleFileSelect, false);
    </script>

此警报提供了详细信息,但没有提供我想要的路径。

任何关于获取路径的帮助,这样我就可以使用jquery通过ajax传递字符串,并使用move_uploaded_file通过php上传文件。

提前谢谢。

当用户做出选择时,您应该有一个值。只需找到一个存储它的地方,然后把它放回你需要的地方。如果你不想提交表单只是为了获得值,你可以在继续到实际表单之前,包括一个从哪里获取值的选择/选项组合。没有选择=没有表单。选择=表单,但尚未提交。