2010-11-25 3 views
1

Что касается элемента управления AsyncFileUpload в .net, элемент управления будет выполнять загрузку файла после выбора файла. В моей озабоченности, можно ли отключить загрузку после выбора файла, чтобы я мог обрабатывать асинхронную загрузку с помощью кнопки отправки.Управление AsyncFileUpload

ответ

0

Насколько я знаю, единственным событием, выставленным AsyncFileUpload, является событие UploadComplete и UploadError. Не существует специальных событий, которые раскрывают функциональность, чтобы вручную инициировать загрузку. Возможно, какой-то трюк в JavaScript может это сделать, но я не видел такого обходного пути раньше.

0

Простой ответ №. У меня были аналогичные проблемы с асинхронной загрузкой, как и те. Мой совет - держаться подальше от него, если вам нужно контролировать загрузку с помощью кнопки, добавлять и удалять выбранные файлы (возможно, вам это потребуется позже) и использовать некоторые манипуляции с JavaScript.

Поиск SWFUpload - это компонент Flash, который легко интегрируется с .NET. Он предлагает несколько вариантов и событий javascript. : D

Проверьте следующие ссылки:

Official site

Demonstration

+0

Я только что прошел через SWFUpload и узнал, что загруженные файлы будут храниться там, где находится upload.aspx. Итак, мой вопрос: как сохранить файл в базе данных? – 2010-11-26 02:24:08

1

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

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

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

<script> 
function disableFileUpload(on) { 
    if (on) { 
     $('#ajax-file-input input:file').attr('disabled', true); 
    } else { 
     $(#ajax-file-input 'input:file').attr('disabled', false); 
    } 
} 
function AsyncFileUpload_CheckExtension(sender, args) { 
    disableFileUpload(true); 
    return true; 
} 
function AsyncFileUpload_OnClientUploadComplete(sender, args) { 
    disableFileUpload(false); 
    var data = eval('(' + args.d + ')'); 
    for (var key in data) { 
     var obj = data[key]; 
     for (var prop in obj) { 
      console.log(prop + " = " + obj[prop]); 
     } 
    } 
    doThingsWith(data); 
} 
</script> 
<div id="ajax-file-input"> 
<ajaxToolkit:AsyncFileUpload ID="AsyncFileUpload1" 
        OnUploadedComplete="AsyncFileUpload_UploadComplete" 
        OnClientUploadStarted="AsyncFileUpload_CheckExtension" 
        OnClientUploadComplete="AsyncFileUpload_OnClientUploadComplete" 
        runat="server" /> 
</div> 

я в конечном итоге позиционирования полупрозрачный PNG на верхней части элемента управления и отображения и скрытия его, чтобы сделать контрольную innaccesible.

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

function disableFileUpload(on) { 
    if (on) { 
     $("#file-disabled").show(); 
    } else { 
     $("#file-disabled").hide(); 
    } 
} 
Смежные вопросы