当前位置:编程学习 > C#/ASP.NET >>

上传文件(C#)

我想上传一个文件包到服务器上去怎么做?还需要知道里面文件的名字又该怎么做?各位大侠帮帮忙吧 --------------------编程问答-------------------- 文件包?rar文件吗?你直接上传,然后在服务器端解压 --------------------编程问答--------------------
引用 1 楼 net_lover 的回复:
文件包?rar文件吗?你直接上传,然后在服务器端解压

貌似只能这样子了!
例子
--------------------编程问答--------------------
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 



--------------------编程问答--------------------

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);

        }
    }
}


--------------------编程问答--------------------
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";
--------------------编程问答--------------------  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();
文件的命名 --------------------编程问答-------------------- 上传参考上面的。
还需要知道里面文件的名字又该怎么做?
小哥,我郑重的回答你:解压!! --------------------编程问答-------------------- 好好,学习了
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,