В настоящее время я использую функцию перетаскивания & компонента «Первичные файлы». Он работает нормально, но я хочу загрузить файлы напрямую, перетащив их куда угодно на мою страницу, без необходимости нажатия кнопки.Загрузка файла JSF путем перетаскивания файла в любую точку страницы
Я попытался это:
$('.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");
}
Проблема заключается в том, что это работает для файла, но не для самого файла. В любом случае, это правильный подход или есть способ переслать список files
в файл «Первичные файлы» и отправить файлы программно без использования gui-компонента?
вы пробовали это [SO ответ] (http://stackoverflow.com/questions/18439699/primefaces-file-upload-drop-file-outside-of-pfileupload-anywhere-in-the-page) до? – malaguna
Да, но это не сработало. Я не уверен, что это решение по-прежнему работает для Primefaces 6.0. – sinclair
Я не уверен, что он удовлетворяет ваши потребности, но есть эта вещь: [Dropzone] (http://stackoverflow.com/questions/38018632/use-dropzone-with-jsf) – sunofkyuss