Ich verwende derzeit die Drag & Drop-Funktion von Primefaces fileUpload-Komponente. Es funktioniert einwandfrei, aber ich möchte Dateien direkt hochladen, indem ich sie irgendwo auf meine Seite ziehe, ohne auf eine Schaltfläche klicken zu müssen. dieseJSF Fileupload durch Ziehen der Datei irgendwo auf die Seite
Ich habe versucht:
$('.dropzone').on({
'dragover dragenter': function (e) {
e.preventDefault();
e.stopPropagation();
},
'drop': function (e) {
var dataTransfer = e.originalEvent.dataTransfer;
if (dataTransfer && dataTransfer.files.length) {
e.preventDefault();
e.stopPropagation();
$.each(dataTransfer.files, function (i, file) {
uploadFile([{"name": "filename", "value": file.name}]);
});
}
}
});
<p:remoteCommand name="uploadFile" action="#{bean.uploadFile()}" />
public void uploadFile(){
String filename =
FacesContext.getCurrentInstance()
.getExternalContext().getRequestParameterMap().get("filename");
}
Das Problem ist, dass dies für den Dateinamen funktioniert, aber nicht für die Datei selbst. Ist das der richtige Ansatz, oder gibt es eine Möglichkeit, die files
-Liste an Primefaces fileUpload weiterzuleiten und die Dateien programmgesteuert ohne Verwendung der GUI-Komponente zu senden?
haben Sie schon versucht, diese [SO beantworten] (http://stackoverflow.com/questions/18439699/primefaces-file-upload-drop-file-outside-of-pfileupload-anywhere-in-the-page) Vor? – malaguna
Ja, aber es hat nicht funktioniert. Ich bin mir nicht sicher, ob diese Lösung noch für Primefaces 6.0 funktioniert. – sinclair
Ich bin nicht sicher, ob es Ihren Bedarf erfüllt, aber es gibt dieses Ding: [Dropzone] (http://stackoverflow.com/questions/38018632/use-dropzone-with-jsf) – sunofkyuss