Кендо UI файл загрузки плагин удалить кнопку настройки - PullRequest
1 голос
/ 08 марта 2012

Я новичок в kendo ui, и я использую плагин загрузки файлов в моем приложении asp.net mvc. Все работает как мечта. Но у меня есть одно дополнительное требование. Когда я загружаю файл, я назначаю уникальную направляющую изображения файлу изображения и загружаю, а затем возвращаюсь к функции обратного вызова. Вот мой код.

<script type="text/javascript">
    $(document).ready(function () {
        $("#attachments").kendoUpload({
            async: {
                saveUrl: '@Url.Action("UploadBlogImages", "Blog")',
                removeUrl: '@Url.Action("Remove", "Blog")',
                autoUpload: true
            },
            success: function (data) {
                var imageGuids = data.response;
                $.each(imageGuids, function (index, imageGuid) {
                    $('#form_uploadPic').append('<input type="hidden" value=' + imageGuid + 'name="ImgGuid">');
                });
            }
        });
    });
</script>

Мне нужно удалить файл, когда пользователь нажимает кнопку удаления, но моя проблема в том, по умолчанию кнопка удаления передает имя файла (которое использовалось во время загрузки) в качестве имени файла для удаления. Но я переименование файла перед загрузкой на сервер. Я присваиваю уникальный идентификатор файла файлу. Я вернул этот идентификатор функции успеха. Как настроить так, чтобы кнопка удаления передавала это руководство серверу для удаления файла.

Спасибо, S

Ответы [ 2 ]

6 голосов
/ 24 августа 2012

другой вариант - добавить идентификатор к самому объекту файла, поэтому в обработчике onSuccess добавьте:

function onUploadSuccess(e) {
    //add the id returned in the json from the upload server script
    e.files[0].id=e.response.id;
}

, затем в обработчике удаления измените имя на id:

function onUploadRemove(e) {
    var files = e.files;
    for(i=0;i <files.length;i++){
            //replace the name with the id added to the object
        files[i].name=files[i].id;
    }
}

настроить так:

$("input[type='file']").kendoUpload(
    {
        async: {
            saveUrl: "url",
            removeUrl: "url",
            removeField: "files"
       },
        success: onUploadSuccess,
        remove: onUploadRemove
    }
);

работает на последней версии kendoUI

3 голосов
/ 08 марта 2012

Интересный сценарий. Есть два способа сделать это прямо сейчас:

  1. В случае успеха найдите элемент li, представляющий fileEntry, и получите его атрибут fileNames data- *. Установите для свойства name найденного объекта fileNames значение guid, полученное с сервера. Это существенно обновляет имя файла, используемое функцией удаления элемента управления Kendo Upload. (Если вы можете получить исходный код, ищите методы removeUploadedFile и _submitRemove, все это будет иметь большой смысл)

  2. При более чистой (в некоторой степени) опции, в случае успеха, найти вновь добавленный элемент li (fileEntry) и затем связанную с ним кнопку «Удалить» (класс: k-upload-action). Получив кнопку удаления, вы можете подключить событие click, с помощью которого можно вызвать собственный настраиваемый URL-адрес или removeUrl элемента управления закачкой, передав ему файл guid, который вы получили при успешной загрузке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...