簡體   English   中英

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

[英]How can I restrict the file type in the file browse menu of an AsyncFileUpload in the ASP.NET AJAX Control Toolkit

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

有什么辦法可以將其更改為“僅限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並停止上傳/設置錯誤消息(可選)(如果無效)。

當前版本的ajax控件工具包沒有此選項。

但是,新功能是您可以獲取源代碼並添加屬性來處理此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM