2017-01-23 3 views
1

ich mehrere Dateien hochladen müssen, ich bin mit materializecss, und es gibt Ihnen die Möglichkeit, mehrere Dateien in einem Eingang hochladen:Mehrere Dateien Eingang materialisieren

<div class="row"> 
    <form class="col s12"> 
     <div class="file-field input-field"> 
      <div class="btn"> 
       <span>Browse</span> 
       <input type="file" multiple> 
      </div> 
      <div class="file-path-wrapper"> 
       <input type="text" name="pictures" class="file-path validate" type="text" placeholder="Upload multiple files"> 
      </div> 
     </div>  
    </form> 
</div> 

materialize.js macht folgendes mit dies:

$(document).on('change', '.file-field input[type="file"]', function() { 
    var file_field = $(this).closest('.file-field'); 
    var path_input = file_field.find('input.file-path'); 
    var files  = $(this)[0].files;  
    var file_names = []; 
    for (var i = 0; i < files.length; i++) { 
     file_names.push(files[i].name); 
    } 
    path_input.val(file_names.join(", ")); 
    path_input.trigger('change'); 
}); 

Also, von $_POST kann ich nur die Namen der Dateien, die ich hochladen möchten. Ich brauche den vollständigen Pfad der Dateien, um sie auf meinen Server zu laden.

Ich werde jede Hilfe zu schätzen wissen.

+0

Sie können diese Pfade nicht erhalten; es würde die Privatsphäre des Benutzers verletzen. – bfontaine

+0

Autsch! Danke @bfontaine – ManelPNavarro

+0

Kein Dateisystem wäre sicher, wenn das möglich wäre. – RiggsFolly

Antwort

2

Sie können diese Pfade nicht erhalten; es würde die Privatsphäre des Benutzers verletzen.

Die File API Spezifikation sagt, dass über das name Attribut (Hervorhebung von mir):

Der Name der Datei; Beim Abrufen muss der Name der Datei als Zeichenfolge zurückgegeben werden. Es gibt zahlreiche Dateinamenvariationen und -konventionen, die von verschiedenen zugrunde liegenden Betriebssystem-Dateisystemen verwendet werden. Dies ist lediglich der Name der Datei ohne Pfadinformationen.

Verwandte Themen