2012-12-03 79 views
0

我認爲ajaxcontroltoolkit:ajaxfileupload有太多的錯誤和衰減。由於我在我的項目中經常使用此組件,因此我克服了此控件的許多令人不安的錯誤和功能。 現在,我非常需要使用ajaxfileupload獲取上傳的圖片寬度和高度,然後保存它以檢查寬度或高度是否正確,並基於檢索到的信息,在圖片寬度和高度不匹配的情況下通知用戶,然後阻止該過程進一步去保存圖片。 任何想法請??如何獲取使用ajaxfileupload上傳的圖像寬度和高度asp.net

HTML端:

<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server" 
     onuploadcomplete="AjaxFileUpload1_UploadComplete" ThrobberID="myThrobber" MaximumNumberOfFiles="1" AllowedFileTypes="jpg,jpeg"/> 

代碼背後:

protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e) 
{ 
    string filePath = "~/upload/" + e.FileName; 
    AjaxFileUpload1.SaveAs(filePath); 

} 
+0

可以顯示接受此文件上傳的方法的原型嗎? –

+0

當然,我編輯我的問題西蒙,並在那裏添加代碼...感謝您的關注。 – Hooman

回答

6

AjaxFileUpload只是處理上載,但不給你的文件本身的任何信息。你需要使用像

System.Drawing.Image objImage = System.Drawing.Image.FromFile(Server.MapPath(filePath)); 
width = objImage.Width; 
height = objImage.Height; 

東西,如果你不希望將文件加載到內存中,你可以檢查How do I reliably get an image dimensions in .NET without loading the image?Getting image dimensions without reading the entire file

另一種方法是使用類似Plupload或類似的工具檢查客戶端的圖像寬度和高度。

+0

謝謝。但是,你不覺得它在服務器端造成一些超載嗎? – Hooman

+0

你爲什麼不試試看它是否有效? 這些是唯一的方法。鏈接中的解決方案耗費更少的內存和CPU,但不適用於所有圖像類型。我已經添加了一個替代方案,但不會使用AjaxFileUpload。 – Olaf

+0

好的,隊友......非常感謝你......我在完成工作後會給你更新。 – Hooman

相關問題