当然可以.请看下面的示例代码:
<%@ Import Namespace="System.IO" %>
<%@ page Language="C#" debug="true" %>
<html>
<head>
<title>上传文件 , http://www.chinabs.net </title>
<script language="C#" runat="server">
 //This method is called when the "upload" button id pressed 
public void UploadFile(object sender , EventArgs E)
 {
   //检查上传文件不为空
   if(myFile.PostedFile!=null)
   {     
  string nam = myFile.PostedFile.FileName ;
  //取得文件名(抱括路径)里最后一个"."的索引
  int i= nam.LastIndexOf(".");
  //取得文件扩展名
  string newext =nam.Substring(i);
  //这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
  DateTime now = DateTime.Now; 
  string newname=now.DayOfYear.ToString()+myFile.PostedFile.ContentLength.ToString(); 
  //保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
  //注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里"\"必须用"\\"代替
  myFile.PostedFile.SaveAs(Server.MapPath("\\test\\Distribution\\"+newname+newext)); 
  //得到这个文件的相关属性:文件名,文件类型,文件大小
  fname.Text=myFile.PostedFile.FileName;
  fenc.Text=myFile.PostedFile.ContentType ;
  fsize.Text=myFile.PostedFile.ContentLength.ToString();
   }
 }</script>
</head>
<body>
<center>
<form id="uploderform" method="post" action="FileUpload.aspx" enctype="multipart/form-data"  runat="server" >
<table border="1" cellspacing="2" cellpadding="2" >
<tr> <td><h5>选择要上传的文件:</h5></td</tr>
<tr>
<td>
<input type="file" id="myFile" runat="server" NAME="myFile">
</td>
</tr>
<tr><td>
<input type="button"  value="上 传" OnServerClick="UploadFile" runat="server" ID="Button1" NAME="Button1">
</td></tr>
</table>
</form>
<br/>
<br/>
<table border="1" cellspacing="2">
<tr><td><b>文件资料</b></td>
<td>&nbsp;</td> 
</tr>
<tr>
<td>文件名 :</td>
<td><asp:label id="fname" text="" runat="server" /></td></tr>
<tr>
<td>文件类型 :</td>
<td><asp:label id="fenc" runat="server" /></td></tr>
<tr>
<td>文件大小 :(in bytes)</td>
<td><asp:label id="fsize" runat="server" /></td></tr>
</table>
<br/>
<br/>
<br/>
</center>
</body>
</htm

解决方案 »

  1.   

    你把这句nam的值改为你提供的文件名就可以了:string nam = myFile.PostedFile.FileName ;
      

  2.   

    你可以用System.Net名字空间中的WebClient:WebClient myWebClient = new WebClient();
    myWebClient.UploadFile("服务器端目标文件", "POST", "客户端文件");
      

  3.   

    sqr5(五的平方) 兄谢谢你的答复,用你的方法后会提示以下错误,怎么处理:
    远程服务器返回错误:(405) 不允许的方法。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Net.WebException: 远程服务器返回错误:(405) 不允许的方法。
      

  4.   

    我也发现WebClient的upload不太好用……
    如果你想upload,建议还是用HttpInputFile吧。如果不想交互,可以设置HttpInputFile的Value。
      

  5.   

    NTFS格式的上传目录要有ASP。NET和匿名浏览用户的写入权限!
      

  6.   

    sqr5(五的平方) 兄: 好象设置HttpInputFile的Value,SaveAs()的时候会提示对象未实例化,你试成功过吗?
      

  7.   

    未实例化是因为
    enctype="multipart/form-data"
      

  8.   

    我已经发email给你,解决了吧!!
      

  9.   

    powerpeople兄解决了,给分,谢谢各位关注!
      

  10.   

    应该没有问题的呀!
    private void btnUpload_Click(object sender, System.EventArgs e)
    {
    HttpFileCollection HttpFiles = Request.Files;
    try
    {
    for(int i=0;i<HttpFiles.Count;i++)
    {
    HttpPostedFile File = HttpFiles.Get(i);
    if(File.ContentLength>0)
    {
    File.SaveAs("\\test\\Distribution\\"+Path.GetFileName(File.FileName));
    }
    }
    }
    catch(Exception Ex)
    {
    Response.Write("文件保存时出错:"+Ex.Message.ToString());
             return;
    }
    }