图像高度宽度验证和弹出窗口

时间:2013-01-23 11:22:41

标签: c# jquery asp.net file-upload

我有一个.aspx页面,其中包含FileUpload控件。我想实现上传图像到网站。但在此之前,我需要检查图像的高度和宽度与这些条件:

  • 如果图片高度> 768或宽度> 1024则显示一条弹出消息以继续....(是/否)

  • 如果图像高度<768或宽度<1024则显示弹出消息以继续....(是/否)

    所以,我已经完成了图片上传代码,但是如何实现呢?任何形式的帮助/建议都会受到赞赏。

                

           <asp:RegularExpressionValidator ID="revUploaderMainPopup" runat="server" ControlToValidate="UploaderMainPopup"
                            ErrorMessage="*" ValidationGroup="MainPopUploadvlg" ToolTip="Only .jpg, .bmp, .png are valid."
                            ForeColor="Red" Display="Dynamic"  ValidationExpression="(.*\.([Jj][Pp][Gg])|.*\.([Bb][Mm][Pp])|.*\.([pP][nN][gG])$)">
           </asp:RegularExpressionValidator> 
    

3 个答案:

答案 0 :(得分:0)

如果不使用自定义验证器,您将无法执行此操作。它肯定必须是服务器端。客户端代码将要求Javascript显示“是或否”对话框(这可以通过javascript: confirm('yes?');对话框完成。

此外,如果您希望保持UI看起来像上传从未发生过并且您在客户端完全验证它(因为部分回发),它将需要一些ajax。

请参阅to get dimensions of the image, without reading the entire file,以便您可以将ajax请求缩短几毫秒。

祝你好运!

答案 1 :(得分:0)

尝试以下

        using (System.Drawing.Image image = System.Drawing.Bitmap.FromStream(fs))
        {
            int iWidth = (int)Math.Round((decimal)image.Width);
            int iHeight = (int)Math.Round((decimal)image.Height);
           if(iWidth > 1024 || iHeight > 768)
           {
                // here you can throw your message
           }
        }

此致

答案 2 :(得分:0)

我是通过以下方式完成的: 我有两个变量(图像和字符串)一个带弹出窗口的div,有拖曳按钮。 验证图像后,我将display:block设置为服务器的div 点击你按钮我正在保存它。

 <div id="dvPopup" class="popup" runat="server" style="display: none">
    <asp:Panel ID="pnlpopup" runat="server" Style="display: block; position: absolute; width:400px;
        margin: auto" CssClass="modalConfirmation">
        <div style="width: 400px; height: 30px;" class="MessageHeaderError">
            <div class="modalHeader">
                Confirmation
            </div>
        </div>
        <br />
        <div style="color: Black">
            <span runat="server" id="spnMessge" style="font-weight:bold">Picture is smaller than 1024 x 768 and will be stretched.</span>
        </div>
        <div class="small">
        </div>
        <div>
            <div style="display: table-cell; height: 40px; padding-left: 80px; vertical-align: middle;
                width: 80px;">
                <asp:ImageButton ID="btnYes" ImageUrl="~/images/correct.png" runat="server" AlternateText="YES"
                    ToolTip="Yes" OnClick="btnYes_Click" />
            </div>
            <div style="display: table-cell; height: 40px; vertical-align: middle;">
                <asp:ImageButton ID="btnNo" ImageUrl="~/images/delete.png" runat="server" AlternateText="NO"
                    ToolTip="No" Style="margin-left: 100px;" OnClick="btnNo_Click" />
            </div>

              在.cs fie:

 private bool ValidateImageSize(System.Drawing.Image imgPopup, string strSource)
    {
        //Messure height & width and show popup;
        if ((strSource == "MainPopup") && (imgPopup.Height > 768 || imgPopup.Width > 1024))
        {
            return true;
        }
        else if (strSource == "SmallPopup" && imgPopup.Height > 300 || imgPopup.Width > 400)
        {
            return true;
        }
        return false;
    }