Web Service를 이용한 파일 업로드 ( Web Site )

 

먼저 D:\SaveImage 아까 웹 서비스를 만들 때 저장 폴더를 설정했는데 그 경로로 upload 라는 가상 디렉토리를 설정한다. 이 설정은 http://local.image.co.kr 에 설정해야 한다.

 

이제 웹 사이트를 만들어보자

 

 

새 프로젝트에서 ASP.NET 웹 응용프로그램을 선택 후 UploadTestWeb이름을 생성하자.

 

FileUpload.aspx 생성하기

이 파일은 업로드를 테스트 하는 .aspx 파일이다.

 

FileUpload.aspx

<br /><br /><br />

   

   

    새이름으로 : <asp:FileUpload ID="files" runat="server" /> <asp:Button ID="Upload" runat="server" Text="업로드" OnClick="Upload_OnClick" />

    <br /><br />

   

    업로드이름으로 : <asp:FileUpload ID="files2" runat="server" /> <asp:Button ID="Upload2" runat="server" Text="업로드" OnClick="Upload2_OnClick" />

   

    <br /><br /><br />

 

 

    <img src="http://local.images.co.kr/upload/hi2/01.png" border=1 /> 01.png - <asp:Button ID="btnDel" runat="server" Text="삭제" OnClick="btnDel_OnClick" />

       

    <br /><br /><br />

   

    <img src="http://local.images.co.kr/upload/hi2/02.png" border=1 /> 02.png - <asp:Button ID="btnDel2" runat="server" Text="삭제" OnClick="btnDel2_OnClick" />

 

    <br /><br /><br />

   

    <img src="http://local.images.co.kr/upload/hi2/03.png" border=1 /> 03.png - <asp:Button ID="btnDel3" runat="server" Text="삭제" OnClick="btnDel3_OnClick" />

 

   

    <br /><br /><br />

    <br /><br /><br />

    <br /><br /><br />

 

    다중 업로드(새이름)<br />

    <asp:FileUpload ID="file1" runat="server" /><br />

    <asp:FileUpload ID="file2" runat="server" /><br />

    <asp:FileUpload ID="file3" runat="server" /> <asp:Button ID="Upload3" runat="server" Text="업로드" OnClick="Upload3_OnClick" />

 

 

    <br /><br /><br />

 

    다중 업로드(기존이름)<br />

    <asp:FileUpload ID="file4" runat="server" /><br />

    <asp:FileUpload ID="file5" runat="server" /><br />

    <asp:FileUpload ID="file6" runat="server" /> <asp:Button ID="Upload4" runat="server" Text="업로드" OnClick="Upload4_OnClick" />

 

 

    <br /><br /><br />

소스 중간의 이미지 출력 부분은 이미지가 잘 업로드가 되었는지를 보기 위해서 이다.

 

새 이름으로 업로드 하기

#region 다중 새이름으로 업로드

/// <summary>

/// 다중 새이름으로 업로드

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void Upload3_OnClick(object sender, EventArgs e)

{

    List<System.Web.UI.WebControls.FileUpload> listFile = new List<System.Web.UI.WebControls.FileUpload>();

    listFile.Add(file1);

    listFile.Add(file2);

    listFile.Add(file3);

 

    SiteUpload sUpload = new SiteUpload();

 

    string statusMessage = sUpload.SatausMessage(sUpload.MultiNewFileUpload(listFile, "HI2")[2][0]);

 

    Response.Write(statusMessage);

 

}

#endregion

위에서 설정한 아이디와 키 값이 맞지 않으면 에러가 발생한다. 따로 try catch문을 설정하지 않아 에러로 보이니 설정 값을 서로 잘 맞춰야 한다.

 

기존 이름으로 덮어 씌우기

#region 기존 이름 덮어씌우기

/// <summary>

/// 기존 이름 덮어씌우기

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void Upload2_OnClick(object sender, EventArgs e)

{

    SiteUpload sUpload = new SiteUpload();

 

    Response.Write("Len : " + files2.PostedFile.ContentLength + "<br />");

 

    /*

    상태 변수

    READY : 준비

    NOEXT : 지원되지 않는 확장자

    NOFNM : 잘못된 파일명

    FAILD : 서버에서 실패

    SUCES : 성공

    NOSEL : 파일선택안함

     */

    string statusMessage = sUpload.SatausMessage(sUpload.SameFileUpload(files2, "HI2")[0]);

 

 

    Response.Write(statusMessage);

}

#endregion

 

다중 새 이름으로 업로드

#region 다중 새이름으로 업로드

/// <summary>

/// 다중 새이름으로 업로드

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void Upload3_OnClick(object sender, EventArgs e)

{

    List<System.Web.UI.WebControls.FileUpload> listFile = new List<System.Web.UI.WebControls.FileUpload>();

    listFile.Add(file1);

    listFile.Add(file2);

    listFile.Add(file3);

 

    SiteUpload sUpload = new SiteUpload();

 

    string statusMessage = sUpload.SatausMessage(sUpload.MultiNewFileUpload(listFile, "HI2")[2][0]);

 

    Response.Write(statusMessage);

 

}

#endregion

 

다중 기존 이름으로 덮어씌우기

#region 다중 기존이름으로 덮어씌우기

/// <summary>

/// 다중 기존이름으로 덮어씌우기

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void Upload4_OnClick(object sender, EventArgs e)

{

    List<System.Web.UI.WebControls.FileUpload> listFile = new List<System.Web.UI.WebControls.FileUpload>();

    listFile.Add(file4);

    listFile.Add(file5);

    listFile.Add(file6);

 

    SiteUpload sUpload = new SiteUpload();

 

    string statusMessage = sUpload.SatausMessage(sUpload.MultiSameFileUpload(listFile, "HI2")[2][0]);

 

    Response.Write(statusMessage);

}

#endregion

 

파일 삭제

#region 파일 삭제

/// <summary>

/// 파일 삭제

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void btnDel_OnClick(object sender, EventArgs e)

{

    /*

    상태 변수

    FAILD : 서버에서 실패

    SUCES : 성공

     */

    SiteUpload sUpload = new SiteUpload();

 

    string statusMessage = sUpload.SatausMessage(sUpload.DeleteFile("HI2", "01.png"));

 

    Response.Write(statusMessage);

 

}

 

 

/// <summary>

/// 파일 삭제

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void btnDel2_OnClick(object sender, EventArgs e)

{

    /*

    상태 변수

    FAILD : 서버에서 실패

    SUCES : 성공

     */

    SiteUpload sUpload = new SiteUpload();

 

    string statusMessage = sUpload.SatausMessage(sUpload.DeleteFile("HI2", "02.png"));

 

    Response.Write(statusMessage);

 

}

 

/// <summary>

/// 파일 삭제

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void btnDel3_OnClick(object sender, EventArgs e)

{

    /*

    상태 변수

    FAILD : 서버에서 실패

    SUCES : 성공

     */

    SiteUpload sUpload = new SiteUpload();

 

    string statusMessage = sUpload.SatausMessage(sUpload.DeleteFile("HI2", "03.png"));

 

    Response.Write(statusMessage);

 

}

#endregion

 

이렇게 해서 웹 서비스를 통해 업로드 하는 과정을 모두 완료했다.

+ Recent posts