一种方式
/// <summary>
/// 上传文件
/// </summary>
/// <param name="filepathLevel"> 上传文件的路径层 </param>
/// <param name="filepath"> 根目录下文件存在的路径 </param>
/// <param name="filename"> 文件名称,默认null </param>
/// <param name="fileFormat"> 文件格式(以,分隔) </param>
/// <param name="maxAmount"> 文件大小(MB计算) </param>
/// <param name="fud"> 上传组件名 </param>
/// <param name="fileIsExists"> 是否必需上传 </param>
/// <returns></returns>
public static string FileUpload( string filepathLevel, string filepath, string filename, string fileFormat, int maxAmount, FileUpload fud, bool fileIsExists)
{
bool formatStatus = false ;
string eorrStr = "" ;
string strText = null ;
string tmpfilepath = System.Web.HttpContext.Current.Server.MapPath(filepathLevel) + filepath;
string tmpfilename;
if (filename == null ) /// 默认名称
{ tmpfilename = DateTime.Now.ToString( " yyyyMMddhhmmss " ) + DateTime.Now.Millisecond.ToString(); }
else
{ tmpfilename = filename; }
/// ---------------------------创建文件夹---------------------------
// HttpContext.Current.Server.MapPath(相对路径):把相对路径转为服务器上的绝对路径。File.Exists(绝对路径):检查是否存在绝对路径指向的文件或目录。
if ( ! File.Exists(tmpfilepath))
{
System.IO.Directory.CreateDirectory(tmpfilepath); // System.IO.Directory.CreateDirectory(文件夹绝对路径):建立绝对路径文件夹。
}
/// ------------------------------写入上传文件--------------------------------
if (fud.HasFile)
{
try
{
string [] strTpye = fud.FileName.Split( ' . ' );
if (strTpye.Length > 1 )
{
int i_split = strTpye.Length - 1 ;
string format = strTpye[i_split];
string [] sArray = fileFormat.Split( ' , ' );
foreach ( string i in sArray)
{
if (format.ToLower() == i.ToString())
{
formatStatus = true ;
break ;
}
}
/// ------------------判断文件格式--------------------
if (formatStatus == false )
{
eorrStr += " 只能上传 " + fileFormat + " 格式文件 " ;
}
/// ------------------判断大小--------------------
int tmpmaxAmount = maxAmount * 1024 * 1024 ;
if (fud.PostedFile.ContentLength > tmpmaxAmount)
{
eorrStr += " 上传不能超过 " + maxAmount + " MB " ;
}
/// ------------------写入文件--------------------
if (eorrStr == "" )
{
string savepath = tmpfilepath + tmpfilename + " . " + format;
if ( ! File.Exists(savepath)) // 不存在就写入
{
fud.SaveAs(tmpfilepath + tmpfilename + " . " + format);
}
strText = filepath + tmpfilename + " . " + format;
}
}
else
{
eorrStr += " 只能上传 " + fileFormat + " 格式文件 " ;
}
// 显示文件信息
// str += "<br/>Saved As: " + FileUpload1.PostedFile.FileName;
// str += "<br/>File Type: " + FileUpload1.PostedFile.ContentType;
// str += "<br/>File Length (bytes): " + FileUpload1.PostedFile.ContentLength;
// str += "<br/>PostedFile File Name: " + FileUpload1.PostedFile.FileName;
// fud.SaveAs(filepath + FileUpload1.FileName);
// str += "Uploading file: " + FileUpload1.FileNam
}
catch (Exception ex)
{
eorrStr += " <b>Error:</b>Unable to save : " + fud.FileName + " <br/> " + ex.Message;
}
}
else
{
if (fileIsExists == true ) /// 必需上传文件
{
eorrStr = " No file uploaded. " ;
}
}
if (eorrStr != "" )
{ JScript.Alert(eorrStr); }
return strText;
}
二种方式
//upload.aspx
<form name="form1" action="Save.aspx" method="post" enctype="multipart/form-data">
<INPUT type="file" id="File1" name="File1">
<input type="submit" name="submit" value="保存">
</form>
private void Page_Load(object sender, System.EventArgs e)
{
if( Request.Files.Count == 0 ) {
Response.Write("<script>alert('请选择上传文件!');</script>");
Response.End();
return;
}
System.Web.HttpPostedFile file = Request.Files[0];
String fileName = Request["fileName"];
String save_path = "./attached/";
String ext = System.IO.Path.GetExtension( file.FileName ).ToLower();
Response.Write(ext);
if( !System.IO.Directory.Exists( Server.MapPath( save_path ) ) )
System.IO.Directory.CreateDirectory( Server.MapPath( save_path ) );
if( ext == ".jpg" || ext == ".gif" || ext == ".bmp" || ext == ".png" ) {
file.SaveAs( Server.MapPath( save_path + fileName ) );
Response.Write("<script type=""text/javascript"">parent.KindInsertImage('" + save_path + fileName + "','" + Request["imgWidth"] + "','" + Request["imgHeight"] + "','" + Request["imgBorder"] + "');</script>'");
Response.End();
}
else {
Response.Write("<script>alert('文件格式不支持!');</script>");
Response.End();
}
}