ASP.NET FileUploadアップロード画像

4531 ワード

HTML:
<table style="width: 100%">



        <tr>



            <td>



                <asp:ValidationSummary ID="ValidationSummary1" runat="server" />



                <br />



                <asp:FileUpload ID="FileUpload1" runat="server" />



                 <asp:Button ID="btn_upload" runat="server" OnClick="btn_upload_Click" 



                    Text="Upload" />



                  



                <asp:CustomValidator ID="CustomValidator1" runat="server" 



                    ControlToValidate="FileUpload1" Display="Static" 



                    ErrorMessage="You should only can upload image file such as files with .jpg or gif extension" 



                    OnServerValidate="Image_validate">*</asp:CustomValidator>



            </td>



        </tr>



    </table>




code:
  

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.IO;

using System.Drawing;





public partial class practice_FileUpload : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {



    }



    protected void btn_upload_Click(object sender, EventArgs e)

    {

        if (Page.IsValid)

        {

            string path = @Page.MapPath("User_Edit.aspx").Replace("User_Edit.aspx", "") + "Documents\\";

            string s = path + Session["UserName"].ToString();

            if (!System.IO.Directory.Exists(path + Session["UserName"].ToString()))

            {



                System.IO.Directory.CreateDirectory(path + Session["UserName"].ToString());



            }





            if (FileUpload1.HasFile)

            {





                FileUpload1.SaveAs(Server.MapPath("~/Seeker/Documents/" + Session["UserName"].ToString() + "/" + this.FileUpload1.FileName));

              



            }

        }

    }





    protected void Image_validate(object source, ServerValidateEventArgs args)

    {



        string fileExt = Path.GetExtension(FileUpload1.FileName).ToLower();

        string fileName = Path.GetFileName(FileUpload1.FileName);

      



        if (fileExt != ".jpg" && fileExt != ".gif")

        {

            args.IsValid = false;

          



        }

    }





    protected void CustomValidator2_ServerValidate(object source, ServerValidateEventArgs args)

    {

        Bitmap bmIP = new Bitmap(FileUpload1.PostedFile.InputStream);



        if (bmIP.Width > 100 | bmIP.Height > 100)

        {



            args.IsValid = false;



        }



        else

        {



            args.IsValid = true;



        }

    }

}



The default size of files uploaded by the FileUpload control is 4MB. This solution was found from the Internet。

,FileUpload 4MB。

, Machine.config
XML:
<httpRuntime

executionTimeout = "110" [in Seconds][number

maxRequestLength = "4096" [number]

requestLengthDiskThreshold = "80" [number]

useFullyQualifiedRedirectUrl = "false" [true|false]

minFreeThreads = "8" [number]

minLocalRequestFreeThreads = "4" [number]

appRequestQueueLimit = "5000" [number]

enableKernelOutputCache = "true" [true|false]

enableVersionHeader = "true" [true|false]

apartmentThreading = "false" [true|false]

requireRootedSaveAsPath = "true" [true|false]

enable = "true" [true|false]

sendCacheControlHeader = "true" [true|false]

shutdownTimeout = "90" [in Seconds][number]

delayNotificationTimeout = "5" [in Seconds][number]

waitChangeNotification = "0" [number]

maxWaitChangeNotification = "0" [number]

enableHeaderChecking = "true" [true|false]

/>