【问题标题】:how to get file path from input field without submitting the form?如何在不提交表单的情况下从输入字段获取文件路径?
【发布时间】:2013-07-27 22:43:19
【问题描述】:

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

提前致谢。

【问题讨论】:

  • 你想达到什么目的?通过 AJAX 上传文件?您不能只通过 AJAX 传递字符串,您需要实际上传文件。
  • 出于安全原因,您试图实现的目标是不可能的,浏览器永远不会返回这个。你可以在这里找到答案:stackoverflow.com/questions/15201071/…
  • @putvande 您好,先生,我希望文件路径为字符串并发出 ajax 请求以上传文件。我不知道这是否可以完成
  • @scraaappy 有什么方法可以在不重新加载页面的情况下提交表单?
  • 看看这个帖子stackoverflow.com/questions/166221/…。也许你可以在那里找到你的解决方案。

标签: php javascript html forms file-upload


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-05
    • 2015-06-12
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 2018-04-18
    相关资源
    最近更新 更多