2016-08-03 68 views
0

我已经形式附加到身体动态:形式提交不提交的文件类型输入

形式是:

<form action="" data-reply-form class="ckit-composer-form" enctype="multipart/form-data">' 
    +'<div class="ckit-composer">' 
     +'<textarea data-ckit-composer-textarea placeholder="Add your reply" autocomplete="off" name="message" class="form-control ckit-composer__textarea"></textarea>' 
     +'<input type="file" name="fileToUpload" data-fileToUpload multiple>' 
     +'</div>' 
     +'<input type="hidden" name="c_id" value="">'  
    +'</form> 

我触发提交这样:

$('[data-fileToUpload]').change(function(event) { 

     $('[data-reply-form]').submit(); 
}); 

而上另一页:

$("[data-reply-form]").submit(function(){ 
     var data = $(this).serialize(); 
     console.debug(data); 
    }); 

但它只注销,消息和c_id输入...为什么不显示文件输入值?如何获取文件输入值,如名称,大小,tmp_name等?

+1

var files = $('input [name =“fileToUpload”]')[0] .files; console.log(files); – user5200704

回答

0

与上传表格应使用POST方法发送

尝试通过使用这种形式的标签

<form action="" data-reply-form class="ckit-composer-form" enctype="multipart/form-data" method="POST">' 

还可以访问文件的信息

$ _FILES

http://php.net/manual/en/reserved.variables.files.php

示例:$ _F ILES [ 'fileToUpload'] [ 'tmp_name的值']

会给你的文件的临时文件名通过HTTP POST

+0

仍然我无法获得文件输入的值 – 112233

0

检查发送这样的:

   <html> 
      <head> 
      <script 
       src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
      </head> 
      <body> 
       <form action="demo_check.php" data-reply-form 
        class="ckit-composer-form" enctype="multipart/form-data" method="POST"> 
        <div class="ckit-composer"> 
         <textarea data-ckit-composer-textarea placeholder="Add your reply" 
          autocomplete="off" name="message" 
          class="form-control ckit-composer__textarea"></textarea> 
         <input type="file" name="fileToUpload" id="fileinput" 
          data-fileToUpload multiple> 
        </div> 
        <input type="hidden" name="c_id" value=""> 
       </form> 
       <script type="text/javascript"> 
          $('[data-fileToUpload]').change(function(event) { 

            $('[data-reply-form]').submit(); 
          }); 

          $("[data-reply-form]").submit(function(){ 
           var name = $('input[type=file]')[0].files[0].name; 
           alert(name); 
           var size = $('input[type=file]')[0].files[0].size; 
           alert("size: "+size); 
         }); 
        </script> 
      </body> 
      </html> 
+0

这是非常好..但我可以保存该文件与此信息?我怎样才能得到文件的tmp_name? – 112233

+0

您可以通过以下代码获取临时文件名...我粘贴了另一个代码,请检查它。 – Roma

0

检查:

  <html> 
     <head> 
     <script type="text/javascript" src="js/jquery-1.12.1.js"></script> 
     </head> 
     <body> 
      <input type="file" id="i_file" value=""> 
      <input type="button" id="i_submit" value="Submit"> 
      <br> 
      <img src="" width="200" style="display: none;" /> 
      <br> 
      <div id="disp_tmp_path"></div> 


     <script type="text/javascript"> 
       $('#i_file').change(function(event) { 
        var tmppath = URL.createObjectURL(event.target.files[0]); 
         $("img").fadeIn("fast").attr('src',URL.createObjectURL(event.target.files[0])); 

         $("#disp_tmp_path").html("Temporary Path(Copy it and try pasting it in browser address bar) --> <strong>["+tmppath+"]</strong>"); 
       }); 
     </script> 
     </body> 

     </html>