0

画像をアップロードするために、次のようにユーザー コントロールを作成しました。背後にあるコードには、画像を保存する方法があります。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UCImageUploader.ascx.cs"
    Inherits="WebApplicationFor_ABC.UCImageUploader" %>
<div>
    <asp:FileUpload ID="FileUploadImage" runat="server" />
    <asp:Image ID="ImageThumbnail" runat="server" />
    <asp:Label ID="LblMsg" runat="server" Text=""></asp:Label>
<asp:CheckBox ID="CheckBoxDelete" runat="server" Text="Delete"/>

</div>

次のようなコードビハインド

 public partial class UCImageUploader : System.Web.UI.UserControl
    {
        public bool SaveImg()
        {
                        //file field isn't empty
        if (FileUploadImage.PostedFile != null)
        {

            //check file size
            HttpPostedFile img = FileUploadImage.PostedFile;

            if (img.ContentLength == 0) // no file uploaded
            {
                msg = "No file was uploaded";
                LblMsg.Text = msg;
                return false;
            }
            else if (img.ContentLength > fileSizeInKB * 1024) // file size exceeds limit
            {
                msg = "File size exceeds the limit. Max is " + fileSizeInKB + "KB";
                LblMsg.Text = msg;
                return false;
            }
            else // accepted file size
            {
                //check file extension jpg,jpeg,BMP

                string[] fileExtensions = { "jpg", "jpeg", "bmp" };

                if (!fileExtensions.Contains(Path.GetExtension(img.FileName).ToLower()))
                {
                    msg = "File extension must be of jpg,jpeg,bmp";
                    LblMsg.Text = msg;
                    return false;
                }

            }
        }
        msg = "Valid File";
        LblMsg.Text = msg;
        return valid;
    }

別のボタンのクリック イベントで、このSaveImg()メソッドを呼び出して画像を保存します。問題は、ポストバック イメージが null として返されるためです。どうすればこれを修正できますか。

4

1 に答える 1

1

画像にアクセスするために、ファイル アップロード コントロールを介してこれを行うことはありません。

FileUploadImage.SaveAs(savePath);
于 2012-12-04T11:20:30.117 に答える