简体   繁体   English

HTML Javascript文件上传

[英]HTML Javascript File Upload

I have following HTML object with file 我有以下HTML对象和文件

  <form name='file_form' class="panel-body">
    <input type="file" id="file" name="file[]" />
    <input type='button' id='btnSendFile' value='sendFile' />
    <output id="list"></output>
  </form>

Where using the file browse in type="file", I select a file to upload. 使用type =“ file”中的文件浏览的地方,我选择一个要上传的文件。 When I click on btnSendFile, the file name of the selected file appears under name. 当我单击btnSendFile时,所选文件的文件名将显示在name下。 However file variable is null when I pass it below. 但是,当我在下面传递它时,文件变量为null。 I need to access file object properties of file object. 我需要访问文件对象的文件对象属性。

I have a function that sends the file. 我有一个发送文件的功能。

var file ;

function sendFile(file) {
var to = $('#to').get(0).value;
var filename = file.name;
var filesize = file.size;
var mime = file.type;

}

$('#btnSendFile').bind('click', function() {
 sendFile(file);
});

How do I get the file object in javascript where I need to file.name, file.size, and file.type? 如何在javascript中需要file.name,file.size和file.type的文件对象中获取文件? What should I assign variable file ? 我应该分配什么变量文件?

UPDATE: Answer: 更新: 答案:

file= $("#file")[0].files[0];

Pass this.previousElementSibling.files[0] or $("#file")[0].files[0] to sendFile this.previousElementSibling.files[0]$("#file")[0].files[0]传递给sendFile

 // var file; function sendFile(file) { // var to = $('#to').get(0).value; var filename = file.name; var filesize = file.size; var mime = file.type; $("#list").html(filename + " " + filesize + " " + mime) } $("#btnSendFile").bind("click", function() { sendFile(this.previousElementSibling.files[0]); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script> <form name='file_form' class="panel-body"> <input type="file" id="file" name="file[]" /> <input type='button' id='btnSendFile' value='sendFile' /> <output id="list"></output> </form> 

Hello here is your answer 你好,这是你的答案

 <form name='file_form' class="panel-body">
        <input type="file" id="file" name="file[]"/>
        <input type='button' id='btnSendFile' value='sendFile' onclick="myFunction()" />
        <output id="list"></output>
      </form>

    <script>
    function myFunction(){
        var x = document.getElementById("file");
    var txt = "";

                var file = x.files[0];
                if ('name' in file) {
                    txt += "name: " + file.name + "<br>";
                }
                if ('size' in file) {
                    txt += "size: " + file.size + " bytes <br>";
                }
    document.getElementById ("list").innerHTML = txt;
    }
    </script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM