文件包?rar文件吗?你直接上传,然后在服务器端解压

解决方案 »

  1.   

    using System; 
    using System.IO; 
    using System.Web.UI.HtmlControls; namespace JH_ProfessionCMS.Common 

    /// <summary> 
    /// 功能 : 上传文件操作类 
    /// 作者 : xtx 
    /// </summary> 
    public class UpFile 

    public UpFile() 

    } #region 是否允许该扩展名上传 IsAllowedExtension 
    /// <summary> 
    /// 是否允许该扩展名上传 
    /// </summary> 
    /// <paramname = "hifile">HtmlInputFile 控件 </param> 
    /// <returns> 允许则返回 true, 否则返回 false </returns> 
    public bool IsAllowedExtension(HtmlInputFile hifile) 

    string strOldFilePath = ""; 
    string strExtension = ""; // 允许上传的扩展名,可以改成从配置文件中读出 
    string[]arrExtension = {".gif",".jpg",".jpeg",".bmp",".png"}; if(hifile.PostedFile.FileName != string.Empty) 

    strOldFilePath = hifile.PostedFile.FileName; 
    // 取得上传文件的扩展名 
    strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf(".")); 
    // 判断该扩展名是否合法 
    for(int i = 0;i <arrExtension.Length;i++) 

    if(strExtension.Equals(arrExtension[i])) 

    return true; 



    return false; 

    #endregion 
        #region 判断上传文件大小是否超过最大值 IsAllowedLength 
    /// <summary> 
    /// 判断上传文件大小是否超过最大值 
    /// </summary> 
    /// <param name="hifile">HtmlInputFile 控件 </param> 
    /// <returns> 超过最大值返回 false, 否则返回 true. </returns> 
        public bool IsAllowedLength(HtmlInputFile hifile) 

    // 允许上传文件大小的最大值 , 可以保存在 xml 文件中 , 单位为 KB 
    int i = 20; 
    // 如果上传文件的大小超过最大值 , 返回 flase, 否则返回 true. 
    if(hifile.PostedFile.ContentLength > i * 1024) 

    return false; 

    return true; 
      } 
    #endregion 
    #region 获取一个不重复的文件名 GetUniqueString 
    /// <summary> 
    /// 获取一个不重复的文件名 
    /// </summary> 
    /// <returns> </returns> 
    public string GetUniqueString() 

    // 得到的文件名形如 :20050922101010 
    return DateTime.Now.ToString("yyyyMMddhhmmss"); 

    #endregion 
    #region 删除指定文件 DeleteFile 
      /// <summary> 
      /// 删除指定文件 
      /// </summary> 
      /// <param name="strAbsolutePath"> 文件绝对路径 </param> 
      /// <param name="strFileName"> 文件名 </param> 
      public void DeleteFile(string strAbsolutePath, string strFileName) 
      { 
      // 判断路径最后有没有 \ 符号,没有则自动加上 
      if(strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length) 
      { 
      // 判断要删除的文件是否存在 
      if(File.Exists(strAbsolutePath + strFileName)) 
      { 
      // 删除文件 
      File.Delete(strAbsolutePath + strFileName); 
      } 
      } 
      else 
      { 
      if(File.Exists(strAbsolutePath + "\\" + strFileName)) 
      { 
      File.Delete(strAbsolutePath + "\\" + strFileName); 
      } 
      } 
      } 
    #endregion 
    #region 上传文件并返回文件名 SaveFile 
    /// <summary> 
    /// 上传文件并返回文件名 
    /// </summary> 
    /// <param name="hifile">HtmlInputFile 控件 </param> 
    /// <param name="strAbsolutePath"> 绝对路径 . 如 :Server.MapPath(@"Image/upload") 与 Server.MapPath(@"Image/upload/") 均可 , 用 \ 符号亦可 </param> 
    /// <returns> 返回的文件名即上传后的文件名 </returns> 
    public string SaveFile(HtmlInputFile hifile,string strAbsolutePath) 

    string strOldFilePath = "",strExtension = "",strNewFileName = ""; // 如果上传文件的文件名不为空 
    if(hifile.PostedFile.FileName != string.Empty) 

    strOldFilePath = hifile.PostedFile.FileName; 
    // 取得上传文件的扩展名 
    strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf(".")); 
    // 文件上传后的命名 
    strNewFileName = GetUniqueString() + strExtension; 
    // 如果路径末尾为 \ 符号,则直接上传文件 
    if(strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length) 

    hifile.PostedFile.SaveAs(strAbsolutePath + strNewFileName); 

    else 

    hifile.PostedFile.SaveAs(strAbsolutePath + "\\" + strNewFileName); 


    return strNewFileName; 

    #endregion 
    #region 重新上传文件,删除原有文件 CoverFile 
    /// <summary> 
    /// 重新上传文件,删除原有文件 
    /// </summary> 
    /// <param name="ffFile">HtmlInputFile 控件 </param> 
    /// <param name="strAbsolutePath"> 绝对路径 . 如 :Server.MapPath(@"Image/upload") 与 Server.MapPath(@"Image/upload/") 均可 , 用 \ 符号亦可 </param> 
    /// <param name="strOldFileName"> 旧文件名 </param> 
    public string CoverFile(HtmlInputFile ffFile,string strAbsolutePath,string strOldFileName) 

    // 获得新文件名 
    string strNewFileName = GetUniqueString(); if(ffFile.PostedFile.FileName != string.Empty) 

    // 旧图片不为空时先删除旧图片 
    if(strOldFileName != string.Empty) 

    DeleteFile(strAbsolutePath,strOldFileName); 

    return SaveFile(ffFile,strAbsolutePath); 

    return ""; 

    #endregion 

      

  2.   


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;using Gift.Web.GiftBackOffice.Models;
    using Usns.Business.Common;namespace Gift.Web.GiftBackOffice.Controllers
    {
        public class UploadFileController : BaseController
        {
            public ActionResult Index()
            {
                string toPath = Request["ToPath"];            UploadFilePageModel model = new UploadFilePageModel();
                model.ToPath = toPath;            return View(model);
            }        public ActionResult UploadFile()
            {
                string methodName = "UploadFile";
                ResultInfo resultInfo = null;            if (Request.Files == null && Request.Files.Count == 0)
                {
                    resultInfo = new ResultInfo
                    {
                        Successful = false,
                        Message = "No posted files."
                    };
                    return Json(resultInfo);
                }            string toPath = Request["ToPath"];            try
                {
                    bool result = false;                HttpPostedFileBase uploadFile = Request.Files[0];
                    if (toPath == null || toPath.Trim().Equals(""))
                    {
                        toPath = uploadFile.FileName;
                    }
                    else
                    {
                        toPath += "/" + uploadFile.FileName;
                    }                result = FTPUtils.UploadFile(uploadFile, toPath);                if (result)
                    {
                        resultInfo = new ResultInfo
                        {
                            Successful = true,
                            Message = "Upload file" + " successfully."
                        };
                    }
                    else
                    {
                        resultInfo = new ResultInfo
                        {
                            Successful = false,
                            Message = "Upload file" + " failed."
                        };
                    }
                }
                catch (Exception ex)
                {
                    LogHandler.LogError(ex, _componentName, _className, string.Format("Method {0}", methodName));                resultInfo = new ResultInfo
                    {
                        Successful = false,
                        Message = ex.Message
                    };
                }
                return Json(resultInfo);        }
        }
    }
      

  3.   

    string Todate =System.DateTime.Now.Year.ToString().Trim()+System.DateTime.Now.Month.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Day.ToString().Trim().PadLeft(2,'0'); if(this.File1.Value=="")
    {
    this.RegisterClientScriptBlock("er01","<script language=JavaScript>alert('請選擇一個文件')</script>");
    return;
    }
    string workno=this.Session["user_id"].ToString().Trim();
    string filename =System.DateTime.Now.Year.ToString().Trim()+System.DateTime.Now.Month.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Day.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Hour.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Minute.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Second.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Millisecond.ToString().Trim();
    this.File1.PostedFile.SaveAs(@"D:\KQConfirm\data1\"+workno+"_"+filename+".xls");
    //--------------check data
    string filestr =@"D:\KQConfirm\data1\"+workno+"_"+filename+".xls";
      

  4.   

     this.File1.PostedFile.SaveAs(@"D:\KQConfirm\data1\"+workno+"_"+filename+".xls");
    上传到私服器上string filename =System.DateTime.Now.Year.ToString().Trim()+System.DateTime.Now.Month.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Day.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Hour.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Minute.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Second.ToString().Trim().PadLeft(2,'0')+System.DateTime.Now.Millisecond.ToString().Trim();
    文件的命名