Aktualnie używam funkcji upuszczania & upuszczania składnika Primefaces fileUpload. Działa dobrze, ale chcę przesłać pliki bezpośrednio, przeciągając je w dowolne miejsce na moją stronę, bez konieczności klikania przycisku.Ładowanie pliku JSF przez przeciągnięcie pliku w dowolne miejsce na stronę
Próbowałem to:
$('.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");
}
Problemem jest to, że pracuje dla pliku, ale nie dla samego pliku. Czy jest to właściwe podejście, czy jest jakiś sposób na przesłanie listy do pliku Primefaces? Przesyłaj i prześlij pliki programowo bez użycia komponentu gui?
próbowałeś to [SO odpowiedź] (http://stackoverflow.com/questions/18439699/primefaces-file-upload-drop-file-outside-of-pfileupload-anywhere-in-the-page) przed? – malaguna
Tak, ale to nie zadziałało. Nie jestem pewien, czy to rozwiązanie nadal działa dla Primefaces 6.0. – sinclair
Nie jestem pewien, czy to spełnia twoje potrzeby, ale jest to coś: [Dropzone] (http://stackoverflow.com/questions/38018632/use-dropzone-with-jsf) – sunofkyuss