2010-11-25 5 views
1

.net의 AsyncFileUpload 컨트롤에 대해서는 파일을 선택하면 컨트롤이 파일 업로드를 실행합니다. 내 관심사에, 일단 업로드 버튼을 비동기 적으로 처리 할 수 ​​있도록 파일을 선택하면 업로드를 비활성화 할 수 있습니까?AsyncFileUpload 컨트롤

답변

0

내가 알기로는 AsyncFileUpload에 의해 노출되는 유일한 이벤트는 UploadComplete 이벤트이고 UploadError입니다. 수동으로 업로드를 시작하는 기능을 노출하는 이벤트는 특별히 없습니다. 아마도 JavaScript의 트릭이 그것을 할 수 있지만 전에는 그러한 대안을 보지 못했습니다.

0

간단한 대답은 아니오입니다. 비슷한 asyncupload 문제가 발생했습니다. 내 충고는 버튼을 사용하여 업로드를 제어하고, 선택한 파일을 추가 및 제거해야하며 (나중에이 파일이 필요함) 일부 자바 스크립트 조작을 사용하면 그와 떨어져 있어야합니다.

SWFUpload를 검색하면 쉽게 .NET과 통합 할 수있는 플래시 구성 요소입니다. 그것은 여러 자바 스크립트 옵션과 이벤트를 제공합니다. : D

확인은 다음 링크 :

Official site

Demonstration

+0

SWFUpload를 방금 보았습니다. 업로드 된 파일이 upload.aspx가있는 위치에 저장된다는 것을 알았습니다. 그래서 내 질문은 어떻게 데이터베이스에 파일을 저장하는 것입니까? –

+0

FileBytes 속성을 사용하여 DB에 저장할 수 있습니다. SWF를 설정하고 게시 할 URL을 선택하면 filebytes (바이트 배열)를 사용하여 데이터베이스에 저장합니다 – jaderanderson

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를 배치하고 컨트롤을 보이지 않게 보이게 숨 겼습니다.

희망이 도움이됩니다.

function disableFileUpload(on) { 
    if (on) { 
     $("#file-disabled").show(); 
    } else { 
     $("#file-disabled").hide(); 
    } 
} 
관련 문제