<?xml version="1.0" encoding="utf-8"?> <!-- ASP.NET 응용 프로그램을 구성하는 방법에 대한 자세한 내용을 보려면 http://go.microsoft.com/fwlink/?LinkId=169433 을 방문하십시오. --> <configuration> <configSections> <section name="BANANA" type="BANANA.Common.WebConfiguration, BANANA.Common"/> </configSections> <BANANA> <fileUpload uploadDirectory="/Storage/" allowedFileTypes="txt, gif, jpg, jpeg, png, ppt, xls, doc, pptx, xlsx, docx, pdf, hwp, zip" /> </BANANA> </configuration>
/// <summary> /// 파일 업로드 /// </summary> /// <param name="FileUploadControl">ASP.NET 파일 업로드 컨트롤</param> public static void Upload(FileUpload FileUploadControl) { // 파일 업로드 컨트롤만을 전달할 경우에는 web.config에 있는 uploadDirectory 경로로 파일을 업로드 합니다. } /// <summary> /// 파일 업로드 /// </summary> /// <param name="FileUploadControl">ASP.NET 파일 업로드 컨트롤</param> /// <param name="LogicalUploadPath">파일을 업로드할 가상 경로</param> public static void Upload(FileUpload FileUploadControl, string LogicalUploadPath) { // web.config에 있는 업로드 경로가 아닌, 다른 경로로 파일을 업로드 하고 싶을 때에는 별도로 지정해 주세요. } /// <summary> /// 파일 다운로드 /// </summary> /// <param name="LogicalFileFullName">다운로드할 파일이 있는 가상 경로를 포함한 파일명</param> public static void Download(string LogicalFileFullName) { // 파일을 다운로드 할때에는 파일명을 포함한 전체 경로를 입력해 주시면 됩니다. // 이때에는 "D:\Storage\test.xls" 등과 같이 실제 경로를 입력하시면 안 됩니다. // "/Storage/test.xls"와 같이 가상 경로를 입력하세요. } /// <summary> /// 파일 다운로드 /// </summary> /// <param name="LogicalDownloadPath">다운로드할 파일이 있는 가상 경로</param> /// <param name="FileName">다운로드할 파일명</param> public static void Download(string LogicalDownloadPath, string FileName) { // 다운로드할 경로와 파일명을 별도로 지정해 주셔도 다운로드가 가능합니다. }
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FileUpload.aspx.cs" Inherits="BANANA.Web.Framework.Test.FileUpload" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>파일업로드 테스트</title> </head> <body> <form id="form1" runat="server"> <div><asp:FileUpload ID="FileUpload1" runat="server" /><asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="파일 업로드" /></div> </form> </body> </html>
protected void Button1_Click(object sender, EventArgs e) { try { // 파일을 업로드합니다. BANANA.Web.File.Upload(this.FileUpload1, "/Storage"); // ASP.NET 파일 업로드 컨트롤과 함께 업로드할 경로를 전달합니다. // 또는, 파일 컨트롤만 전달해도 됩니다. BANANA.Web.File.Upload(this.FileUpload1); // 이때에는 web.config에서 uploadDirectory 항목에 저장된 경로를 사용하게 됩니다. // 파일이 업로드된 가상 경로를 반환합니다(예: "/Storage/"). Response.Write(BANANA.Web.File.LogicalDirectory + "<br />"); // 파일이 업로드된 실제 경로를 반환합니다(예: "D:\Storage\"). Response.Write(BANANA.Web.File.PhysicalDirectory + "<br />"); // 업로드된 파일의 원본 파일명(예: SearchGuide.pdf) Response.Write(BANANA.Web.File.OrginalFileName + "<br />"); // 업로드된 파일의 유일한 파일명(예: 20130225122057219.pdf) Response.Write(BANANA.Web.File.UploadedFileName + "<br />"); // 업로드된 파일의 크기를 byte 단위로 반환합니다(예: 20490). Response.Write(BANANA.Web.File.UploadedFileSize + "bytes<br />"); } catch (Exception err) { MessageBox.Show(err.Message , "파일업로드 오류" , MessageBox.MessageBoxType.Alert , MessageBox.MessageBoxIcon.Error ); } }
protected void Button1_Click(object sender, EventArgs e) { try { // 파일이 저장되어 있는 폴더와 파일명까지 전달해 줍니다. BANANA.Web.File.Download("/Storage/Folder1/text.xls"); // 파일이 저장되어 있는 폴더와 파일명을 별도로 전달할 수도 있습니다. BANANA.Web.File.Download("/Storage/Folder1/", "text.xls"); } catch (Exception err) { MessageBox.Show(err.Message , "파일 다운로드 오류" , MessageBox.MessageBoxType.Alert , MessageBox.MessageBoxIcon.Error ); } }