如何从输入字段获取文件路径而不提交表单?

时间:2013-07-27 22:43:20

标签: php javascript html forms file-upload

我想让用户选择一个文件。路径位置应存储在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上传文件。

提前致谢。

1 个答案:

答案 0 :(得分:0)

当用户做出选择时,您应该有一个值。只需找到存放它的地方,然后将其拉回到您需要的地方。如果您不想仅仅为了获取值而提交表单,则可以在继续执行实际表单之前包含select / option组合,从中获取值。没有选择=没有形式。选择=表格,但尚未提交。