【问题标题】:How do I assign a PHP file name as a variable value in JavaScript?如何在 JavaScript 中将 PHP 文件名指定为变量值?
【发布时间】:2012-04-30 12:54:10
【问题描述】:

我使用这个 html5 脚本来获取我的 php 表单中的文件信息。我想要的不是上传文件,而是只获取文件名而不上传文件。有可能吗?

这是脚本:

<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++) {
  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>

【问题讨论】:

  • 是的,但我不想上传我搜索解决方案的文件!

标签: php javascript html upload


【解决方案1】:

不,如果不上传文件并检查 $_FILES 数组,您将无法知道文件名。
但是,您可以发出 AJAX 请求,该请求将上传文件并返回文件名,以便您可以将其添加到您的视图中

【讨论】:

    【解决方案2】:

    f.name javascript 变量中已有文件名。如果要将其发送到服务器,只需将其放在表单内的隐藏输入中即可。或者您可以使用 ajax 请求发送此值。

    【讨论】:

    • 需要上传文件吗?或者我可以只发送没有文件的名称吗?谢谢
    【解决方案3】:

    给定以下形式:

    <form name="myForm" action="send.php">
        <input type="file" id="fileSelect">
        <input type="hidden" name="filename">
        <input type="submit">
    </form>
    

    要停止文件实际上传,不要给文件输入字段name 属性。相反,您创建一个hidden 输入字段,并且当用户选择 一个文件,用文件名填充该字段,例如:

    <script>
        var fileSelect = document.getElementById('fileSelect');
    
        var handleFileSelect = function(e) {
            var files = e.target.files;
            if(files.length === 1) {
                document.forms.myForm.filename.value = files[0].name;
            }
        };
    
        fileSelect.addEventListener('change', handleFileSelect, false);
    </script>
    

    现在当用户提交表单时,您可以使用$_GET['filename'] 获取文件名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 2017-04-26
      • 2012-02-12
      • 2010-10-07
      • 2023-02-23
      • 2016-10-25
      • 1970-01-01
      相关资源
      最近更新 更多