ASP.NET에서 파일을 업로드하고 다운로드하기 위한 예제 코드

怪我咯
풀어 주다: 2017-03-30 11:53:49
원래의
1854명이 탐색했습니다.

system.IO 사용;
//업로드된 파일이 비어 있지 않은지 확인

 if(File1.PostedFile!=null)
   {     
    string nam = File1.PostedFile.FileName ;
    //取得文件名(抱括路径)里最后一个"."的索引
    int i= nam.LastIndexOf(".");
    //取得文件扩展名
    string newext =nam.Substring(i);
    //这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
    DateTime now = DateTime.Now; 
    string newname=now.DayOfYear.ToString()+File1.PostedFile.ContentLength.ToString(); 
    //保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
    //注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里""必须用""代替
    File1.PostedFile.SaveAs(Server.MapPath("upload"+newname+newext));    this.HyperLink1.NavigateUrl  ="upload"+newname+newext;    //得到这个文件的相关属性:文件名,文件类型,文件大小
    //fname.Text=File1.PostedFile.FileName;
    //fenc.Text=File1.PostedFile.ContentType ;
    //fsize.Text=File1.PostedFile.ContentLength.ToString();
   }
로그인 후 복사

HTML 컨트롤의 파일을 사용하여 업로드할 수 있습니다. .net 필드의 업로드 컨트롤에서 양식으로 드래그한 후 마우스 오른쪽 버튼을 클릭하여 업로드할 코드 몇 줄만 작성하면 됩니다. 다운로드하려는 파일을 서버에 업로드한 후 직접 하이퍼링크를 추가하고 다운로드합니다.
설명: 직접 복사하여 붙여넣어 사용할 수 있습니다. cs 파일에서
System.IO 사용

using System.Web.UI.HtmlControls;namespace youjian 
{ 
 /// <summary> 
 /// UpFile 的摘要说明。 
 /// </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 void CoverFile(HtmlInputFile ffFile,string strAbsolutePath,string strOldFileName) 
{ 
 //获得新文件名 
 string strNewFileName = GetUniqueString(); if(ffFile.PostedFile.FileName != string.Empty) 
 { 
 //旧图片不为空时先删除旧图片 
  if(strOldFileName != string.Empty) 
  { 
   DeleteFile(strAbsolutePath,strOldFileName); 
  } 
  SaveFile(ffFile,strAbsolutePath); 
 } 
} 
#endregion
로그인 후 복사

C#.net 파일 작업: 파일 목록 업로드

🎜>--------- --
다음 사항:
HTML 부분:

<form id="form1" runat="server" method="post" enctype="multipart/form-data"> 
<input id="FileUpLoad" type="file" runat="server"/><br /> 
后台CS部分 按钮事件 
//string strFileFullName = System.IO.Path.GetFileName(this.FileUpLoad.PostedFile.FileName); 
//this.FileUpLoad.PostedFile.SaveAs(Server.MapPath("./xmlzip/") + strFileFullName);
로그인 후 복사

2. 파일 다운로드

--------- --

ListBox的SelectedIndexChanged事件 设定相关下载连接 
protected void lst_DownLoadFileList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
 try 
 { 
  string strJS = "window.open(&#39;xmlzip/"; 
  strJS += this.lst_DownLoadFileList.SelectedItem.Text.Trim(); 
  strJS += "&#39;); return false; "; 
  this.imgbtn_DownLoadFile.Attributes.Add("onclick", strJS); 
 } 
 catch (Exception ex) 
 { 
  ex.ToString(); 
 } 
}
로그인 후 복사

또는


this.Label1.Text = "<a href=/"xmlzip/a.rar/">a.rar</a>"
로그인 후 복사

를 클릭한 후 파일 다운로드를 위한 슈퍼 링크를 얻기 위해 라벨의 텍스트 값을 변경할 수도 있습니다. 3. ---------


string strFilePath = Server.MapPath("../CountryFlowMgr/xmlzip/"+this.lst_DownLoadFileList.SelectedItem.Text.Trim()); 
if (File.Exists(strFilePath)) 
{ 
 File.Delete(strFilePath); 
 if (File.Exists(strFilePath)) 
 { 
  Response.Write("ok"); 
 } 
 else 
 { 
  Response.Write("ok"); 
 } 
}
로그인 후 복사

4. 폴더의 파일 목록 가져오기

---------

#region 목록 가져오기 현재 사용 가능한 파일
///


/// 현재 사용 가능한 파일 목록 가져오기
///
/// 프롬프트 메시지가 팝업되어야 하는지 여부

private void fn_getCurrFileList(bool IsAlert) 
{ 
 try 
 { 
  //查找xmlzip文件夹下 属于其本身UnitCoding的相关zip文件 
  string strXmlZipDirectory = Server.MapPath("../xmlzip/"); 
  if (Directory.Exists(strXmlZipDirectory)) 
  { 
   //DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory); 
   DirectoryInfo di = new DirectoryInfo(strXmlZipDirectory);   FileInfo[] FI = di.GetFiles("*.zip");//只查.zip文件 
   if (FI.Length > 0) 
   { 
    lst_DownLoadFileList.Items.Clear(); 
    foreach (FileInfo tmpFI in FI) 
    { 
     ListItem tmpItem = new ListItem(); 
     tmpItem.Text = tmpFI.Name; 
     lst_DownLoadFileList.Items.Add(tmpItem); 
    } 
    lst_DownLoadFileList.SelectedIndex = 0; 
   } 
   else 
   { 
    if (IsAlert) 
    { 
     Response.write("查无可以下载的文件!"); 
    } 
   } 
  }  
 } 
 catch (Exception ex) 
 { 
  ex.ToString(); 
 } 
} 
#endregion
로그인 후 복사

위 내용은 ASP.NET에서 파일을 업로드하고 다운로드하기 위한 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿