2016-07-11 10 views
2

Ich möchte den Namen des Dateinamens ändern, wenn die Datei DropZone fällt.Ändern Sie den Namen des Dateinamens vor dem Hochladen DropZone

Dropzone.autoDiscover = false; 
 

 
    var myDropzone = new Dropzone("#pop"); 
 
    myDropzone.on("addedfile", function(file) { 
 

 

 
    }); 
 

 
    myDropzone.on("removedfile",function(file){ 
 
    \t $.ajax({ 
 
\t \t \t \t url: "delete.php", 
 
\t \t \t \t type: "POST", 
 
\t \t \t \t data: { 'name': file.name} 
 
\t \t \t \t }); 
 
}); 
 

 
myDropzone.on("sending", function(file, xhr, formData) { 
 
\t \t \t console.log(file); 
 
\t console.log(xhr);console.log(formData); 
 
    \t file.uniqueName = new Date().getTime() +"_" + file.name; 
 
\t \t formData.append("unicname", file.uniqueName); 
 
    $("#pop").append("<input type='hidden' name='hidname' id='hidname' value="+file.uniqueName+">"); 
 
    xhr.response('unival='+file.uniqueName); 
 
    console.log(xhr);console.log(formData); 
 
    
 
     console.log(file); 
 
    }); 
 

 
Dropzone.options.myDropzone = { 
 
    \t 
 
    \t paramName: "file", 
 
    uploadMultiple: true, 
 
    init: function() { 
 
    \t 
 
    \t 
 
     thisDropzone = this; 
 
    <!-- 4 --> 
 
     
 
     $.getJSON('upload.php', function(data) { 
 
    \t \t \t 
 
      <!-- 5 --> 
 
      $.each(data, function(key,value){ 
 
        
 
       var mockFile = { name: value.name, size: value.size }; 
 
       
 
       myDropzone.options.addedfile.call(myDropzone, mockFile); 
 
    
 
       myDropzone.options.thumbnail.call(myDropzone, mockFile, "upload/"+value.name); 
 
        
 
      }); 
 
       
 
     }); 
 
    }, 
 

 
    success: function(file, response){ 
 
       
 
      } 
 

 
    
 
};

Haben Sie versucht bereits den folgenden Code, aber keine Werte funktionieren.Die nicht bilden Daten.Verfahren Änderungen an variablen Datei anhängen nicht zugänglich auf dropzone.js von überall definetely möglich t. Dropzone.js

myDropzone.on("sending", function(file, xhr, formData) { 
 
\t \t \t console.log(file); 
 
\t console.log(xhr);console.log(formData); 
 
    \t file.uniqueName = new Date().getTime() +"_" + file.name; 
 
\t \t formData.append("unicname", file.uniqueName); 
 
    $("#pop").append("<input type='hidden' name='hidname' id='hidname' value="+file.uniqueName+">"); 
 
    xhr.response('unival='+file.uniqueName); 
 
    console.log(xhr);console.log(formData); 
 
    
 
     console.log(file); 
 
    });

Keine Lösung zu funktionieren scheint. Grundsätzlich möchte ich Datei zu bestimmten Dateinamen auf dem Server speichern.

Antwort

0

Technisch können Sie die Miniaturansicht Dateiname nach dem Hochladen der Datei ändern, auch denke ich, die Dropzone sollte von Ihrem Datenformular getrennt werden, sobald Sie die Datei hochladen, gibt der Server einen Dateinamen zurück. und Sie können einen versteckten Eingabewert mit diesem Dateinamen im Datenformular festlegen und dann das Datenformular senden. die Codes sind wie:

<div id="pop"> 

</div> 
<form id="data-form"> 
    <input type="hidden" name="fileName"> 
    <input type="submit" name="submit" value="submit"> 
</form> 
<script> 
    var dropzone = new Dropzone("#pop"); 
    dropzone.on("success",function(file,response){ 
     var fileName = response.data.fileName //server return fileName 
     $('input[name="fileName"]').val(fileName); 
     var dataUrl = response.data.fileUrl; 
     file.name = fileName //change thumbnail file name 
     this.emit("thumbnail",file,dataUrl);//draw thumbnail 
    }); 

</script> 
+0

Dies wird für das Bild auf Browser-Seite, dh alt-Attribute nicht die Dateinamen ändern, die Ich muss hier ändern –

+0

der Dateiname, über den Sie sprechen, ich denke, ist der Name der Thumbnail-Datei in der Dropzone-Terminologie. Bitte beachten Sie jedoch meine Aktualisierungen in den Codes. –

0

Sie auch CSS müssen folgende mit js Codes zu gehen Ihrem Ergebnis zu erreichen:

.dz-preview .dz-filename{display:none} 
.dz-preview.dz-success .dz-filename{display:block}