Uploadify - передача информации обратно в исходную форму - PullRequest
2 голосов
/ 03 марта 2010

У меня есть страница Send.aspx, на которой есть элемент uploadify. Upload.ashx обрабатывает загрузку файла.

Я добавляю запись файла в базу данных sql в файле Upload.ashx, и мне нужно получить идентификатор этой записи из Upload.aspx, когда это будет сделано.

Не могу заставить его работать с сессиями. = (Что-то связанное с ошибкой Adobe?

Каким будет лучший способ справиться с этим?

Вот элемент управления загрузки:

<script type="text/javascript">
                // <![CDATA[
                var contestID = $('[id$=HiddenFieldContestID]').val();
                var maxEntries = $('[id$=HiddenFieldMaxEntries]').val();
                var userID = $('[id$=HiddenFieldUserID]').val();
                $(document).ready(function() {
                    $('#fileInput').uploadify({
                        'uploader': '../uploadify/uploadify.swf',
                        'script': '../uploadify/Upload.ashx',
                        'scriptData': { 'contestID': contestID, 'maxEntries': maxEntries, 'userID': userID },
                        'cancelImg': '../uploadify/cancel.png',
                        'auto': true,
                        'multi': false,
                        'fileDesc': 'Image Files',
                        'fileExt': '*.jpg;*.png;*.jpeg',
                        'queueSizeLimit': 1,
                        'sizeLimit': 4000000,
                        'buttonText': 'Choose Image',
                        'folder': '/uploads',
                        'onAllComplete': function(event, queueID, fileObj, response, data) {
                            document.getElementById('<%= ButtonCleanup.ClientID %>').click();
                        }

                    });
                });
                // ]]></script>

Мне потребовалось некоторое время, чтобы понять. Но в ретроспективе это предельно просто. По этой причине я без ума от видеоурока, чтобы помочь новичкам быстро начать работу и понять, как работает этот потрясающий элемент управления.

Видеоурок от начала до конца:

http://casonclagg.com/articles/6/video-tutorial-uploadify-asp-net-c-sharp.aspx

Ответы [ 2 ]

1 голос
/ 03 марта 2010

Я заметил в своем собственном сценарии, что я использую событие onComplete вместо onAllComplete. Если параметр конфигурации не ускользает от меня, onComplete будет срабатывать после каждого вызова Upload.aspx (файлы загружаются индивидуально - опять же, возможно, это настраивается) Согласно документации, onAllComplete фактически не передает данные запроса назад (что имеет смысл, потому что это делается за пределами отдельных загрузок).

Все, что выводит Upload.aspx, должно отображаться в параметре response. Вы можете просто сделать так, чтобы он выводил идентификатор элемента, который создал скрипт, и ответ должен содержать соответствующую строку.

0 голосов
/ 19 марта 2010

Как и было обещано, я сделал видеоурок о том, как использовать элемент управления Uploadify в приложении ASP.Net.

http://casonclagg.com/articles/6/video-tutorial-uploadify-asp-net-c-sharp.aspx

Надеюсь, это поможет.

Короткий ответ на мои вопросы таков:

Когда вы возвращаете context.Response.Write("foo"); из вашего обработчика Upload.ashx ...

И поместите это в свой элемент управления загрузкой:

 'onComplete': function(event, queueID, fileObj, response, data) {
    alert(response);
 }

Появится окно предупреждения со словом foo.

Вы можете сделать это чем-то более сложным вроде

context.Response.Write("id=55&title=This is the title");

и разберите значения самостоятельно в своем OnComplete или OnAllComplete в JQuery.

...