2016-08-03 17 views
0

Ich habe Form dynamisch Körper angehängt:Formular nicht Dateityp Eingabe einreichen

die Form ist:

<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> 

ich auf diese Weise auslösen einreichen:

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

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

Und auf die andere Seite:

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

Aber es meldet sich nur ab, Nachrichten und c_id-Eingaben ... Warum zeigt es keine Dateieingabewerte an? Wie erhalte ich Dateieingaben wie Name, Größe, tmp_name usw.?

+1

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

Antwort

0

Formen mit Uploads sollten

versuchen tag

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

auch können Sie die Dateien Informationen mithilfe von

_FILES

$

Zugriff über dieses Formular mit der POST-Methode gesendet werden http://php.net/manual/en/reserved.variables.files.php

Beispiel: $ _F Diese ILES [ 'fileToUpload'] [ 'tmp_name']

würden Sie die temporären Dateinamen der Datei über HTTP POST

+0

immer noch ich bin nicht in der Lage, den Wert der Dateieingabe – 112233

0

überprüfen geschickt geben:

   <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

das ist sehr gut..aber kann ich die Datei mit dieser Info speichern? Wie kann ich tmp_name der Datei erhalten? – 112233

+0

Sie können den Namen der Temporary-Datei mit dem folgenden Code abrufen ... Ich habe einen anderen Code eingefügt, überprüfen Sie es. – Roma

0

prüfen Sie:

  <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> 
Verwandte Themen