上传文件(C#) 文件包?rar文件吗?你直接上传,然后在服务器端解压 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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();文件的命名 有关数据库,那啥,tab那个什么符还有换行符占几个字节 紧急求助!!! 请教一个关于javascript数据截取的问题 看别人的代码,其中有时调用的是数据库中的存储过程,有时调用的是随手写的SQL语句,应该怎样取舍? 百分求思路 一个很难的问题 大家不知道谁遇到过 关于ajax的 ASP.NET2.0数据绑定 在线等待!!!!!!有难度的问题???? 问一个关于界面显示的问题 ▲▲▲微软专家,各位朋友请看过来:▲▲▲ asp.net下CKEditor配置文件上传功能后,不能上传文件,有“网页无法显示”错误提示 asp.net使用datalist分页实现局部刷新,不能让整个页面一起刷新(急)
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); }
}
}
{
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";
上传到私服器上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();
文件的命名