Лучший подход перетащить падение загрузить .NET - PullRequest
1 голос
/ 19 ноября 2011

Я пытался найти надежное решение в разделе «drag-drop-upload» для веб-приложения, использующего .NET.Я экспериментировал с Silverlight 4, но невозможно использовать эту функцию таким образом, если он не используется вне браузера.

Я прочитал эти статьи

загрузка файла с помощью перетаскиванияи пропустите

загрузку файла с помощью перетаскивания

, но они оба ссылаются на http://www.plupload.com/, что круто, но я хотел бы разработать свой собственныйрешение.

У кого-нибудь есть совет по подходу?Вам нужно использовать технологию на стороне клиента для выполнения большей части работы, а затем отправлять данные на сервер, или ... ну, я просто не уверен.Я понимаю, что большинство людей предпочли бы использовать чье-то решение или инструментарий ... но эй, что тут интересного?:)

1 Ответ

1 голос
/ 05 февраля 2012

Лучший подход - использовать Silverlight ... по крайней мере, это то, что я нашел.Перейдите на пример этого парня и просто проанализируйте, как он использует веб-сервис.Я взял это, заменил все его вещи в веб-сервисах на службы WCF RIA, и БАМ! .. работает как шарм.Если вы поэкспериментируете с этим некоторое время, вы обнаружите, что есть масса способов переместить FileSteam или Byte (), чтобы сохранить его на диск, если хотите ... любой кто, это мой ответ на мой собственный вопрос,Примечание: чтобы перетаскивание SL работало в браузерах Mac, необходимо дополнительное кодирование (события перетаскивания должны обрабатываться в JS, а не в SL).

Если HTML5 является опцией, используйте новый JSСобытие 'drop' тоже работает довольно мило.Одним из ключевых моментов при использовании этого является предотвращение по умолчанию для «dragover», «dragenter» и «drop»

function ConfigDropElement() {

    document.getElementById('dragarea').addEventListener("dragover", handleDragOver, false);

    document.getElementById('dragarea').addEventListener("dragenter", function (e) { e.preventDefault(); }, false);

    document.getElementById('dragarea').addEventListener("drop", function (event) {

        event.preventDefault();
        event.stopPropagation();

        for (var i = 0; i < event.dataTransfer.files.length; i++) {

            var file = event.dataTransfer.files[i];

            var fi = new FileInfoElement();
            fi.WriteInfo(file.name);

            var reader = new FileReader();
            reader.readAsDataURL(file);

            var fi = new FileInfoElement();
            fi.WriteInfo(file.name);


        }



    }, false);

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