C\#파일 업로드 기능 간단하게 구현

4107 단어 C#파일 업로드
최근 프로젝트 의 업로드 파일 기능 중 하나 입 니 다.프로젝트 는 MVC+EF+LigerUI 에서 만 들 었 습 니 다.붙 여 주세요.
1.페이지 는 이 JS 와 CSS 를 참조 해 야 합 니 다.


2.페이지 에 Upload.ashx 추가
3.코드 는 다음 과 같 습 니 다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Web.Security;

namespace AL.Web {
 /// <summary>
 /// Upload      
 /// </summary>
 public class Upload : IHttpHandler {

  public void ProcessRequest(HttpContext context) {
   context.Response.ContentType = "text/plain";
   //context.Response.Write("Hello World");

   string r = "";
   //         sn             ,       ,     ,        ,   ~
   string sn = context.Request.QueryString["sn"];
   if (sn != null && sn.Length > 14) sn = sn.Substring(0, 14);

   if (context.User.Identity.IsAuthenticated == false) {
    //          
   }
   try {
    //         
    HttpPostedFile file = context.Request.Files["Filedata"];
    string fileName = file.FileName;
    string fileType = Path.GetExtension(fileName).ToLower();
    //          FileName  (         ,        ),      
    if (fileName.IndexOf(' ') > -1) {
     fileName = fileName.Substring(fileName.LastIndexOf(' ') + 1);
    } else if (fileName.IndexOf('/') > -1) {
     fileName = fileName.Substring(fileName.LastIndexOf('/') + 1);
    }
    //     
    string uploadDir = "~/Content/uploadfile/TMP/" + System.DateTime.Now.ToString("yyyyMM") + "/";
    //     
    //            
    if (Directory.Exists(context.Server.MapPath(uploadDir)) == false) {
     Directory.CreateDirectory(context.Server.MapPath(uploadDir));
    }
    if (Directory.Exists(context.Server.MapPath(uploadDir + System.DateTime.Now.ToString("dd") + "/")) == false) {
     Directory.CreateDirectory(context.Server.MapPath(uploadDir + System.DateTime.Now.ToString("dd") + "/"));
    }

    uploadDir = uploadDir + System.DateTime.Now.ToString("dd") + "/";

    string uploadPath = uploadDir + FormsAuthentication.HashPasswordForStoringInConfigFile(fileName, "MD5").Substring(0, 8) + fileType;
    //    
    file.SaveAs(context.Server.MapPath(uploadPath));
    //          ,                  
    //DbHelperOleDb.ExecuteSql("insert into [temp](temp_sn,temp_Content) values('" + sn + "','" + uploadPath + "')");

    //Response.Write("1");
    //context.Response.Write("{'IsError':false, 'Data':'" + uploadPath + "'}");
    r = "{'IsError':false, 'Data':'" + uploadPath + "'}";
   } catch (Exception ex) {
    //Response.Write("0");
    //throw ex;
    //context.Response.Write("{IsError: true, data:'" + ex.Message + "'}");
    r = "{'IsError':true, 'Data':'" + ex.Message + "'}";
   } finally {
    r = r.Replace("'", "\"");
    context.Response.Write(r);
    context.Response.End();
   }
  }
  public bool IsReusable {
   get {
    return false;
   }
  }
 }
}

페이지 프론트 데스크 톱 처리 아래 그림:

\#FilesUrl 은 업로드 파일 의 경 로 를 데이터베이스 에 저장 하고 주소 에 따라 다운로드 하여 볼 수 있 는 텍스트 상자 입 니 다.
이상 은 C\#파일 업로드 기능 을 실현 하 는 간단 한 세 단계 입 니 다.여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기