Dot-Net

如何在 ASP.NET AJAX 控制項工具包中的 AsyncFileUpload 的文件瀏覽菜單中限製文件類型

  • June 4, 2012

我想限制他們在文件上傳對話框中看到的內容,預設情況下該對話框設置為“所有文件”。我了解如何驗證他們只上傳了某種文件類型,這不是這裡的問題。我只想知道如何在文件選擇對話框中預設文件類型。

有什麼方法可以將其更改為“僅限 PNG”或“* .png”?

這是在 ASP.NET AJAX 控制項工具包中使用 AsyncFileUpload。

這個對我有用(感謝 DavRob 的啟發)。

<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>

您可以使用OnClientUploadStart控制項上的屬性來觸發 JavaScript 函式進行驗證,如下所示:

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

然後在您的頁面中包含此腳本或包含:

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;
}

在這種情況下,我們只是使用客戶端 API 的各個位來獲取/檢查擴展,false如果錯誤消息無效,則返回並停止上傳/設置錯誤消息(可選)。

引用自:https://stackoverflow.com/questions/3357605