FineUploader submitDelete Получить имя файла и расширение

Мне нужно вызвать веб-службу перед удалением файла, поэтому я решил использовать обратный вызов «submitDelete». То, что я пытаюсь сделать, это получить имя файла и его расширение.

Есть ли в Fine Uploader метод, который я мог бы вызвать, просто чтобы получить эту информацию?

Ниже мой текущий код.

$('#uploader').fineUploader({
    request: {
        endpoint: 'upload.asp'
    },
    deleteFile: {
        enabled: true,
        endpoint: 'Upload.asp'
    },
    multiple: false
}).on('submitDelete', function (id) {
    alert(id);
});

person user2309706    schedule 30.04.2013    source источник
comment
Зачем вам эта информация? Что вы пытаетесь сделать, в частности, в обратном вызове submitDelete?   -  person Ray Nicholus    schedule 30.04.2013
comment
Все мои изображения сохраняются в одном каталоге. Когда я вызываю deleteFile, выполняется мой внутренний процесс, который удаляет файл из каталога. Этот процесс работает нормально. Однако клиент хочет сохранить историю удаляемых файлов. Метод FineUploader DeleteFile передает только UUID. Или можно передать UUID, имя файла и расширение в качестве параметра при вызове DeleteFile?   -  person user2309706    schedule 30.04.2013


Ответы (1)


Вы можете передать любые параметры с помощью запроса DELETE. Например, в обратном вызове submitDelete вы можете вызвать метод setDeleteFileParams API, передав имя файла. Существует метод getName API, который возвращает имя файла с учетом идентификатора файла.

Я только что заметил, что метод setDeleteFileParams API не задокументирован. Я открою отчет об ошибке и обязательно правильно задокументирую это в версии 3.6. Этот метод работает так же, как метод setParams API (те же параметры). Однако обратите внимание, что параметры для запросов DELETE будут частью строки запроса.

Внутри вашего обработчика обратного вызова onSubmitDelete следующий код извлечет имя файла и добавит его в качестве параметра для связанного запроса DELETE:

.on('submitDelete', function(event, id) {
   var filename = $(this).fineUploader('getName', id);
   $(this).fineUploader('setDeleteFileParams', {filename: filename}, id);
});
person Ray Nicholus    schedule 30.04.2013
comment
Ошибка из-за отсутствия документации обнаружена на github.com/Widen/fine-uploader/issues/ 820. - person Ray Nicholus; 30.04.2013
comment
У вас есть пример метода setDeleteFileParams и как мне получить имя файла? Спасибо!! - person user2309706; 30.04.2013
comment
Я запутался в том, как использовать API. Эти функции можно вызывать в FineUploader? Если да, то как вы их называете? Документация показывает только метод, но не то, как реализовать эти методы. - person user2309706; 01.05.2013
comment
Пожалуйста, не оставляйте код в комментарии. Это очень трудно читать. Поскольку вы используете подключаемый модуль jQuery, см. соответствующий раздел в документации подключаемого модуля jQuery, в котором описывается, как вызывать методы API. На главной странице также есть несколько примеров. Вы можете передавать параметры вместе с запросами DELETE либо через параметры, либо через метод API. - person Ray Nicholus; 01.05.2013
comment
Итак, я попытался использовать пример, размещенный на URL-адресе, и я получаю сообщение об ошибке getName is undefined - person user2309706; 01.05.2013
comment
getName — это метод API. Вы должны вызвать его на связанном экземпляре Fine Uploader, таком как $(this).fineUploader('getName', id); - person Ray Nicholus; 01.05.2013
comment
Поэтому я должен поместить это в метод DeleteFile и сослаться на setDeleteFileParams (setDeleteFileParams: код для получения имени файла). Правильно? - person user2309706; 01.05.2013
comment
Рэй, твой пример отлично работает!! Как вы когда-нибудь задумывались о том, чтобы добавить возможность получать расширение файла вместо полного имени файла? Было бы либо обрабатывать это на стороне сервера, если бы мы знали расширение без необходимости делать разделение. - person user2309706; 01.05.2013
comment
Рэй в документации API для метода setDeleteFileParams указывает, что если этот метод используется и пользователь устанавливает setDeleteFileParams, он переопределяет любые параметры, ранее установленные в обратном вызове DeleteFile params:. - person user2309706; 01.05.2013
comment
Это обсуждение становится немного длинным и не по теме. Пожалуйста, примите мой ответ, если он решил вашу проблему, что, похоже, и произошло. Кроме того, довольно просто извлечь расширение на стороне клиента имени файла. Просто используйте регулярное выражение. - person Ray Nicholus; 01.05.2013