2010-07-28 30 views
6

'daki bir AsyncFileUpload dosyasının dosya menüsündeki dosya türünü nasıl kısıtlayabilirim? Varsayılan olarak "Tüm Dosyalar" olarak ayarlanan dosya yükleme iletişim kutusunda gördüklerini kısıtlamak istiyorum . Sadece belirli bir dosya türünü yüklediklerini nasıl doğrulayacaklarını anlıyorum, buradaki soru bu değil. Dosya seçim diyaloğunda dosya türünün nasıl varsayılan ayarlanacağını bilmek isterim.ASP.NET AJAX Denetim Araç Takımı

Bunu "PNG only" veya "* .png" olarak değiştirmenin herhangi bir yolu var mı?

Bu ASP.NET AJAX Denetim Araç Takımı'nda AsyncFileUpload kullanıyor.

cevap

2

ajax kontrol araç setinin şu anki sürümü bu seçeneğe sahip değil.

Ama yeni olan, source code'u alabilmeniz ve bir özellik ekleyebilmenizdir.

3

Böyle, doğrulama için bir JavaScript işlevi yangın denetimi OnClientUploadStart özelliğini kullanabilirsiniz:

<cc1:AsyncFileUpload ID="FileUpload" runat="server" 
    OnClientUploadStarted="checkExtension" /> 

Ardından sayfasında da bu komut dosyası var veya yer: Bunda

function checkExtension(sender, args) { 
    var ext = args.get_fileName().substring(filename.lastIndexOf(".") + 1); 
    if (ext != 'png') { 
    args.set_cancel(true);       //cancel upload 
    args.set_errorMessage("File type must be .png"); //set error message 
    return false; 
    } 
    return true; 
} 

durumda, uzantıyı almak/kontrol etmek, false'u döndürmek ve geçersizse, hata mesajını (isteğe bağlı) yükleme/durdurmayı durdurmak için yalnızca istemci tarafı API'sinin çeşitli bitlerini kullanıyoruz.

+2

Bu, yükleme işlemini durdurur ancak set_cancel bulunmadığından çirkin "desteklenmez" hatası verir. Bu, çözüme çok yakındır ancak set _ *** işlevlerini çağırmak için özel bir istisna atmak zorundadır. – daniloquio

10

Bu benim için çalışıyor (İlham için DavRob'a teşekkürler).

<cc1:AsyncFileUpload ID="FileUpload" runat="server" 
    OnClientUploadStarted="AssemblyFileUpload_Started" /> 

<script> 
function AssemblyFileUpload_Started(sender, args) { 
    var filename = args.get_fileName(); 
    var ext = filename.substring(filename.lastIndexOf(".") + 1); 
    if (ext != 'png') { 
     throw { 
      name:  "Invalid File Type", 
      level:  "Error", 
      message:  "Invalid File Type (Only .png)", 
      htmlMessage: "Invalid File Type (Only .png)" 
     } 
     return false; 
    } 
    return true; 
} 
</script> 
+1

+1 Bu gerçekten çalışıyor, teşekkürler. – daniloquio

+1

Çalışıyor, ancak OnClientUploadError olayına abone olmadıkça ve üzerinde hiçbir şey yapmıyorsanız, ekranda bir uyarı atar. –

İlgili konular