Я загружаю несколько файлов с FineUploader, и у меня есть кнопка отмены, чтобы остановить процесс загрузки и удалить все файлы, которые были загружены. Когда я нажимаю «Удалить» в каждом файле, он работает нормально, но с некоторого времени назад (не уверен, было ли это с обновлением до 3.9 или до этого), я получаю пустое предупреждение и сообщение «Удалить сбой», но файлы удаляются с сервера, поэтому сервлет работает нормально.Ошибка удаления файлов с FineUploader
Мой код для удаления файлов что-то вроде этого:
function clearFiles() {
var array = document.getElementsByClassName("qq-upload-delete");
for (var i = 0; i < array.length; i++) {
array[i].style="display: inline;";
array[i].click();
}
}
Я предполагаю, что если проблема может быть быть пытается удалить файлы без ожидания сообщения подтверждения (поэтому я удалить следующий прежде чем я получу ответ от предыдущего) или что-то еще, но я не могу объяснить пустое предупреждение. Я не нашел никакой документации или примера об этом. Есть идеи?
Console Log: Код
Uncaught ReferenceError: Modernizr is not defined.
Uncaught Error: Element not found drop.
[FineUploader 3.9.0-3] DELETE request for 0 has failed - response code 0
[FineUploader 3.9.0-3] Delete request for 'test File.pdf' has failed. id: test File.pdf, fileName: Delete request failed with response code 0, reason: [Object XMLHttpRequest]
Сервер:
public void doDelete(final HttpServletRequest req, final HttpServletResponse resp) throws IOException {
String uuid = req.getPathInfo().replaceAll("/", "");
FileUtils.deleteUploadedFile(uuid);
resp.setStatus(successResponseCode);
}
FineUploader определение
myUploader = new qq.FineUploader({
element: $('#file-uploader')[0],
multiple: false,
autoUpload: true,
deleteFile: {enabled: true, forceConfirm: false, endpoint: '/upload-portlet/fineupload/receiver'},
...
});
imageUploader = new qq.FineUploader({
element: $('#image-uploader')[0],
multiple: false,
autoUpload: true,
deleteFile: {enabled: true, forceConfirm: false, endpoint: '/upload-portlet/fineupload/receiver'},
...
});
метод New clearFiles
function clearFiles() {
if (myUploader && myUploader.getUploads()) {
var array = myUploader.getUploads();
for (var i = 0; i < array.length; i++) {
myUploader.deleteFile(array[i].id);
}
}
if (imageUploader && imageUploader.getUploads()) {
var array = imageUploader.getUploads();
for (var i = 0; i < array.length; i++) {
imageUploader .deleteFile(array[i].id);
}
}
}
Это не работает для imageUploader, но это делает для myUploader. Любая идея почему?
Почему вы делаете это снова, а не просто вызываете метод API deleteFile? Кроме того, перечислите все ваши клиентские коды и сообщения в консольном журнале. –
По требованиям, у меня есть два экземпляра fineuploader в том же jsp. Должен ли я использовать что-то вроде $ ('# id'). FineUploader ('deleteFile', id) ;? – Asier
Да. Кроме того, разместите свой код на стороне клиента и содержимое консоли javascript, чтобы мы могли дополнительно помочь. –