aspnet附件上传
ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现。
下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压。
ASP.NET页面设计:TextBox和Button按钮。

TextBox中需要自己受到输入文件夹的路径(包含文件夹),通过Button实现选择文件夹的问题还没有解决,暂时只能手动输入。
两种方法:生成rar和zip。
1.生成rar
using Microsoft.Win32;
using System.Diagnostics;
protected void Button1Click(object sender, EventArgs e)
{
RAR(@"E:95413594531GIS", "tmptest", @"E:95413594531");
}
///
///压缩文件
///
///需要压缩的文件夹或者单个文件
///生成压缩文件的文件名
///生成压缩文件保存路径
///
protected bool RAR(string DFilePath, string DRARName,string DRARPath)
{
String therar;
RegistryKey theReg;
Object theObj;
String theInfo;
ProcessStartInfo theStartInfo;
Process theProcess;
try
{
theReg = Registry.ClassesRoot.OpenSubKey(@"ApplicationsWinRAR.exeShellOpenCommand"); //注:未在注册表的根路径找到此路径
theObj = theReg.GetValue("");
therar = theObj.ToString();
theReg.Close();
therar = therar.Substring(1, therar.Length - 7);
theInfo = " a" + " " + DRARName + "" + DFilePath +" -ep1"; //命令 + 压缩后文件名 + 被压缩的文件或者路径
theStartInfo = new ProcessStartInfo();
theStartInfo.FileName = therar;
theStartInfo.Arguments = theInfo;
theStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
theStartInfo.WorkingDirectory = DRARPath ; //RaR文件的存放目录。
theProcess = new Process();
theProcess.StartInfo = theStartInfo;
theProcess.Start();
theProcess.WaitForExit();
theProcess.Close();
return true;
}
catch (Exception ex)
{
return false;
}
}
///
///解压缩到指定文件夹
///
///压缩文件存在的目录
///压缩文件名称
///解压到文件夹
///
protected bool UnRAR(string RARFilePath,string RARFileName,string UnRARFilePath)
{
//解压缩
String therar;
RegistryKey theReg;
Object theObj;
String theInfo;
ProcessStartInfo theStartInfo;
Process theProcess;
try
{
theReg = Registry.ClassesRoot.OpenSubKey(@"ApplicationsWinRar.exeShellOpenCommand");
theObj = theReg.GetValue("");
therar = theObj.ToString();
theReg.Close();
therar = therar.Substring(1, therar.Length - 7);
theInfo = @" X " + " " + RARFilePath + RARFileName + " " + UnRARFilePath;
theStartInfo = new ProcessStartInfo();
theStartInfo.FileName = therar;
theStartInfo.Arguments = theInfo;
theStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
theProcess = new Process();
theProcess.StartInfo = theStartInfo;
theProcess.Start();
return true;
}
catch (Exception ex)
{
return false;
}
}
注:这种方法在在电脑注册表中未找到应有的路径,未实现,仅供参考。
2.生成zip
通过调用类库ICSharpCode.SharpZipLib.dll
该类库可以从网上下载。也可以从本链接下载:SharpZipLib_0860_Bin.zip
增加两个类:Zip.cs和UnZip.cs
(1)Zip.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Collections;
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
namespace UpLoad
{
/// <summary>
///功能:压缩文件
/// creator chaodongwang 2009-11-11
/// </summary>
public class Zip
{
/// <summary>
///压缩单个文件
/// </summary>
/// <param name="FileToZip">被压缩的文件名称(包含文件路径)</param>
/// <param name="ZipedFile">压缩后的文件名称(包含文件路径)</param>
/// <param name="CompressionLevel">压缩率0(无压缩)-9(压缩率最高)</param>
/// <param name="BlockSize">缓存大小</param>
public void ZipFile(string FileToZip, string ZipedFile, int CompressionLevel)
{
//如果文件没有找到,则报错
if (!System.IO.File.Exists(FileToZip))
{
throw new System.IO.FileNotFoundException("文件:" + FileToZip + "没有找到!");
}
if (ZipedFile == string.Empty)
{
ZipedFile = Path.GetFileNameWithoutExtension(FileToZip) + ".zip";
}
if (Path.GetExtension(ZipedFile) != ".zip")
{
ZipedFile = ZipedFile + ".zip";
}
////如果指定位置目录不存在,创建该目录
//string zipedDir = ZipedFile.Substring(0,ZipedFile.LastIndexOf("\"));
//if (!Directory.Exists(zipedDir))
//Directory.CreateDirectory(zipedDir);
//被压缩文件名称
string filename = FileToZip.Substring(FileToZip.LastIndexOf('\') + 1);
System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile);
ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
ZipEntry ZipEntry = new ZipEntry(filename);
ZipStream.PutNextEntry(ZipEntry);
ZipStream.SetLevel(CompressionLevel);
byte[] buffer = new byte[2048];
System.Int32 size = StreamToZip.Read(buffer, 0, buffer.Length);
ZipStream.Write(buffer, 0, size);
try
{
while (size < StreamToZip.Length)
{
int sizeRead = StreamToZip.Read(buffer, 0, buffer.Length);
ZipStream.Write(buffer, 0, sizeRead);
size += sizeRead;
}
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
ZipStream.Finish();
ZipStream.Close();
StreamToZip.Close();
}
}
/// <summary>
///压缩文件夹的方法
/// </summary>
public void ZipDir(string DirToZip, string ZipedFile, int CompressionLevel)
{
//压缩文件为空时默认与压缩文件夹同一级目录
if (ZipedFile == string.Empty)
{
ZipedFile = DirToZip.Substring(DirToZip.LastIndexOf("\") + 1);
ZipedFile = DirToZip.Substring(0, DirToZip.LastIndexOf("\")) +"\"+ ZipedFile+".zip";
}
if (Path.GetExtension(ZipedFile) != ".zip")
{
ZipedFile = ZipedFile + ".zip";
}
using (ZipOutputStream zipoutputstream = new ZipOutputStream(File.Create(ZipedFile)))
{
zipoutputstream.SetLevel(CompressionLevel);
Crc32 crc = new Crc32();
Hashtable fileList = getAllFies(DirToZip);
foreach (DictionaryEntry item in fileList)
{
FileStream fs = File.OpenRead(item.Key.ToString());
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
ZipEntry entry = new ZipEntry(item.Key.ToString().Substring(DirToZip.Length + 1));
entry.DateTime = (DateTime)item.Value;
entry.Size = fs.Length;
fs.Close();
crc.Reset();
crc.Update(buffer);
entry.Crc = crc.Value;
zipoutputstream.PutNextEntry(entry);
zipoutputstream.Write(buffer, 0, buffer.Length);
}
}
}
/// <summary>
///获取所有文件
/// </summary>
/// <returns></returns>
private Hashtable getAllFies(string dir)
{
Hashtable FilesList = new Hashtable();
DirectoryInfo fileDire = new DirectoryInfo(dir);
if (!fileDire.Exists)
{
throw new System.IO.FileNotFoundException("目录:" + fileDire.FullName + "没有找到!");
}
this.getAllDirFiles(fileDire, FilesList);
this.getAllDirsFiles(fileDire.GetDirectories(), FilesList);
return FilesList;
}
/// <summary>
///获取一个文件夹下的所有文件夹里的文件
/// </summary>
/// <param name="dirs"></param>
/// <param name="filesList"></param>
private void getAllDirsFiles(DirectoryInfo[] dirs, Hashtable filesList)
{
foreach (DirectoryInfo dir in dirs)
{
foreach (FileInfo file in dir.GetFiles("*.*"))
{
filesList.Add(file.FullName, file.LastWriteTime);
}
this.getAllDirsFiles(dir.GetDirectories(), filesList);
}
}
/// <summary>
///获取一个文件夹下的文件
/// </summary>
/// <param name="strDirName">目录名称</param>
/// <param name="filesList">文件列表HastTable</param>
private void getAllDirFiles(DirectoryInfo dir, Hashtable filesList)
{
foreach (FileInfo file in dir.GetFiles("*.*"))
{
filesList.Add(file.FullName, file.LastWriteTime);
}
}
}
}
(2)UnZip.cs
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
///解压文件
/// </summary>
using System;
using System.Text;
using System.Collections;
using System.IO;
using System.Diagnostics;
using System.Runtime.Serialization.Formatters.Binary;
using System.Data;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
namespace UpLoad
{
/// <summary>
///功能:解压文件
/// creator chaodongwang 2009-11-11
/// </summary>
public class UnZipClass
{
/// <summary>
///功能:解压zip格式的文件。
/// </summary>
/// <param name="zipFilePath">压缩文件路径</param>
/// <param name="unZipDir">解压文件存放路径,为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹</param>
/// <param name="err">出错信息</param>
/// <returns>解压是否成功</returns>
public void UnZip(string zipFilePath, string unZipDir)
{
if (zipFilePath == string.Empty)
{
throw new Exception("压缩文件不能为空!");
}
if (!File.Exists(zipFilePath))
{
throw new System.IO.FileNotFoundException("压缩文件不存在!");
}
//解压文件夹为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹
if (unZipDir == string.Empty)
unZipDir = zipFilePath.Replace(Path.GetFileName(zipFilePath), Path.GetFileNameWithoutExtension(zipFilePath));
if (!unZipDir.EndsWith("\"))
unZipDir += "\";
if (!Directory.Exists(unZipDir))
Directory.CreateDirectory(unZipDir);
using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipFilePath)))
{
ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(theEntry.Name);
string fileName = Path.GetFileName(theEntry.Name);
if (directoryName.Length > 0)
{
Directory.CreateDirectory(unZipDir + directoryName);
}
if (!directoryName.EndsWith("\"))
directoryName += "\";
if (fileName != String.Empty)
{
using (FileStream streamWriter = File.Create(unZipDir + theEntry.Name))
{
int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break;
}
}
}
}
}
}
}
}
}
以上这两个类库可以直接在程序里新建类库,然后复制粘贴,直接调用即可。
主程序代码如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using Microsoft.Win32;
using System.Diagnostics;
namespace UpLoad
{
public partial class UpLoadForm : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "") //如果输入为空,则弹出提示
{
this.Response.Write("<script>alert('输入为空,请重新输入!');window.opener.location.href=window.opener.location.href;</script>");
}
else
{
//压缩文件夹
string zipPath = TextBox1.Text.Trim(); //获取将要压缩的路径(包括文件夹)
string zipedPath = @"c: emp"; //压缩文件夹的路径(包括文件夹)
Zip Zc = new Zip();
Zc.ZipDir(zipPath, zipedPath, 6);
this.Response.Write("<script>alert('压缩成功!');window.opener.location.href=window.opener.location.href;</script>");
//解压文件夹
UnZipClass unZip = new UnZipClass();
unZip.UnZip(zipedPath+ ".zip", @"c: emp"); //要解压文件夹的路径(包括文件名)和解压路径(temp文件夹下的文件就是输入路径文件夹下的文件)
this.Response.Write("<script>alert('解压成功!');window.opener.location.href=window.opener.location.href;</script>");
}
}
}
}
本方法经过测试,均已实现。
另外,附上另外一种上传文件方法,经测试已实现,参考链接:http://blog.ncmem.com/wordpress/2019/11/20/net%e4%b8%8a%e4%bc%a0%e5%a4%a7%e6%96%87%e4%bb%b6%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/
2. 用ASP.NET做一个文件上传功能,前台同过HTML input file 控件 将文件上传到FTP 服务器 ;
第一,客户端是没办法完成遍历本地文件夹的。用JS做这个操作不现实。
第二,你上传,也是先传到本地服务器,再通过FTP的方式用程序传到FTP服务器上去。这是两个步骤。
3. asp.net上传附件时为什么别的格式的可以上传,只有.docx格式的文件 FileUpload1.HasFile为falsh
检查以下文件大小是否为0,HasFile函数应该是根据文件的内容的大小来判断的,所以会显示为false。
希望可以解决你的问题
4. asp.net怎么上传文件,并把文件添加到数据库中
我用的是MS SQL,你把数据库换一下就可以了.protected void btnOk_Click(object sender, EventArgs e)
{        try
        {
            int count;
            SqlParameter[] parm = new SqlParameter[8];
            string picPath = (string)ViewState["Pic"];
            if (!string.IsNullOrEmpty(picPath))
            {
                DeleteFile(Server.MapPath("~/MusicAlbum") + picPath);
            }
            parm[0] = new SqlParameter("@RecordID", int.Parse(txtRecordID.Text));
            string strPicFileName = string.Empty;
            if (FileUploadU(MapPath("~/") + @"Res\MusicAlbum\", fuPic,out strPicFileName))
            {
                parm[1] = new SqlParameter("@Pic", @"\" + strPicFileName);
                parm[2] = new SqlParameter("@Title", txtTitle.Text);
                parm[3] = new SqlParameter("@SingerName", txtSingerName.Text);
                parm[4] = new SqlParameter("@VisitorCount", txtVisitCount.Text);
                parm[5] = new SqlParameter("@CreatePeople", txtCreateDate.Text);
                parm[6] = new SqlParameter("@EditPeople", txtEditPeople.Text);
                parm[7] = new SqlParameter("@EditDate", DateTime.Now);                count = RunProcere("MIndex2NAHotAlbumLarge_Update", parm, out count);
                if(count>0)
                {
                    Common.Show(this, "操作成功!");
                }
                else
                {
                    Common.Show(this, "操作失败!");
                }
            }
            else
            {
                Common.Show(this, "上传失败,请重新上传!");
            }
        }
        catch (Exception ex)
        {
            string strErrorMsg = "操作出错,错误信息:" + ex.Message + " 出错位置: " + ex.StackTrace;
            Common.Show(this, strErrorMsg.Replace("\r", "\\r").Replace("\n", "\\n"));
        }} public static int RunProcere(string storedProcName, IDataParameter[] parameters, out int rowsAffected)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            int result;
            connection.Open();
            SqlCommand command = BuildIntCommand(connection, storedProcName, parameters);
            rowsAffected = command.ExecuteNonQuery();
            result = (int)command.Parameters["ReturnValue"].Value;
            connection.Close();
            return result;
        }
    }private static SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
    {
        SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
        command.Parameters.Add(new SqlParameter("ReturnValue",
            SqlDbType.Int, 4, ParameterDirection.ReturnValue,
            false, 0, 0, string.Empty, DataRowVersion.Default, null));        return command;
    } private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
    {
        SqlCommand command = new SqlCommand(storedProcName, connection);
        command.CommandType = CommandType.StoredProcere;
        foreach (SqlParameter parameter in parameters)
        {
            command.Parameters.Add(parameter);
        }
        return command;
    } /// <summary>
    /// 输入完整的路径,进行删除文件操作(如果上传同一文件,则执行此方法)
    /// </summary>
    /// <param name="filePath"></param>
    public static void DeleteFile(string filePath)
    {
        try
        {
            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }
        }
        catch { }
    } /// <summary>
    /// 上传文件到服务器
    /// </summary>
    /// <param name="savePath"></param>
    /// <param name="fileupload"></param>
    /// <param name="result"></param>
    /// <returns></returns>
    public bool FileUploadU(string savePath, FileUpload fileupload, out string result)
    {
        //从web.config中读取上传路径 ConfigurationManager.ConnectionStrings["path"].ConnectionString
        string path = "";
        try
        {
            //获取文件后缀名
            int last = fileupload.PostedFile.FileName.LastIndexOf(".");
            //获取指定路径的文件名
            string fileExtension = fileupload.PostedFile.FileName.Substring(last + 1);
            if (Common.IsAllowedExtension(fileupload) == true)
            {
                //上传文件后缀名
                fileExtension = fileupload.PostedFile.FileName.Substring(last);
                path = Helper.DateAsfileName() + fileExtension;                result = savePath + path;
                //int start=result.Substring
                result = result.Substring(0, result.LastIndexOf("\\"));                //上传到服务器后的物理路径(实际路径)
                if (!Directory.Exists(result))
                {
                    Directory.CreateDirectory(result);
                }
                result = path;
                fileupload.PostedFile.SaveAs(savePath + result);
            }
            else
            {
                result = "文件上传格式不正确!";
                return false;
            }
        }
        catch (Exception ex)
        {
            result = "文件上传错误:\r\n" + ex.Message + " 出错位置:\r\n" + ex.StackTrace;
            return false;
        }
        return true;
    } /// <summary>
/// 检测文件上传格式
/// </summary>
/// <param name="hifile"></param>
/// <returns></returns>
public static bool IsAllowedExtension(FileUpload hifile)
{
System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
string fileclass = "";
byte buffer;
try
{
buffer = r.ReadByte();
fileclass = buffer.ToString();
buffer = r.ReadByte();
fileclass += buffer.ToString();
}
catch { }
r.Close();
fs.Close();//255216是jpg;7173是gif;6677是BMP;13780是PNG;7790是exe,8297是rar
if (fileclass == "255216" || fileclass == "7173" || fileclass == "6677" || fileclass == "13780")
{
return true;
}
else
{
return false;
}
}因为后面还有很多代码,所以就只能用QQ了
5. ASP.NET怎么将上传控件上传的文件上传到指定目录
想获取任何地方,不明白想要实现什么,请具体说明。
上传文件,当然要保存到某个路径--即文件夹下。
saveas
方法将使用
fileupload
控件上载的文件的内容保存到
web
服务器上的指定路径。
要使对
saveas
的调用有效,asp.net
应用程序必须拥有服务器上相应目录的写访问权限。应用程序可以通过两种方式获得写访问权限。您可以将要保存上载文件的目录的写访问权限显式授予运行应用程序所使用的帐户。您也可以提高为
asp.net
应用程序授予的信任级别。
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.fileupload.saveas
(vs.80).aspx
6. ASP.Net如何用FileUpLoad实现多文件上传
给你些建议哦:
1.多文件上传没有必要动态添加FileUpLoad,因为这种工作并没有带来多大的收益,因为你完全可以放置4个到5个FileUpLoad控件,用户上传一般不会很多,假如超过5个也可以分多次上传。
2.如果想动态添加,你首先要判断用户还是否有下个文件上传,所以你必须添加一个BUTTON或者LABEL来让用户确认,比如:“上传下一个文件”,用户点击的事件里写:
FileUpLoad FUL = new FileUpLoad();
FUL.Name = "FUL" + Convet.ToString(i);//这个i是你要定义的全局变量,用于记录用户在同一次上传中点击了几次控件。点一次自加1,初始为0
this.Controls.Add(FUL);
i++;
获得路径就通过这个i,写个循环来获得,这样LZ应该思路很清楚了吧。
7. 如何用asp.net实现文件上传的代码
#region 文件上传
       
string path = null;
        string name = null;
        string type2 = null;
        string upfile = null;
        if (fu.HasFile)
        {
            try 
            {
                name = fu.FileName;
                type2 = name.Substring(name.LastIndexOf(".") + 1);
                upfile = System.DateTime.Now.ToString("yyyyMMddhhmmss") + "." + type2;
                if (type2.ToLower() == "rar" || type2.ToLower() == "zip" || type2.ToLower() == "doc" || type2.ToLower() == "xls" || type2.ToLower() == "ppt")
                {
                    path = Server.MapPath("file") + "\\";
                    if (!File.Exists(path)) 
                    {
                        Directory.CreateDirectory(path);
                        fu.SaveAs(path + name);
                    }
                    fu.SaveAs(path + name);
                }
                else 
                {
                    Response.Write("<script>alert('格式不正确(格式(.doc,.xls,.rar,.zip,.ppt)!');</script>");
                    Response.End();
                }
            }
            catch(Exception ex)
            {
                Response.Write("<script>alert('上传格式错误:" + ex.Message.ToString() + "');window.location.href='Upload.aspx';</script>");
            }
        }
        else 
        {
            upfile = "N/A";
            name="N/A";
            
        }
        if (upfile != "N/A" ||  name!="N/A")
        {
            UpLoad up = new UpLoad();
            UpLoadBll uBll = new UpLoadBll();
            up.setFileName(upfile);
            up.setU_name(name);
            if (uBll.insertFile(up))
                {
                    Response.Write("<script>alert('" + uBll.getMsg() + "');window.location.href='Upload.aspx';</script>");
                }
                else
                {
                    Response.Write("<script>alert('" + uBll.getMsg() + "');window.location.href='Upload.aspx';</script>");
                }
}
        else 
        {
            Response.Write("<script>alert('上传文件的内容或上传文件不能为空!');window.location.href='Upload.aspx';</script>");
            
        }
    }
        #endregion
然后把upfile 插入到数据库就OK了
8. asp/php/asp.net 上传附件大小修改怎么操作
您好,对于你的遇到的问题,我很高兴能为你提供帮助,我之前也遇到过哟,以下是我的个人看法,希望能帮助到你,若有错误,还望见谅!。你好方法如下:
asp上传大小限制iis中默认为200K,下面是修改asp上传大小限制详细步骤
1、以记事本方式打开c:\windows\system32\inetsrv\metabase.xml 2、把其中AspMaxRequestEntityAllowed="20480000"
即添加两个0(把ASP上传文件大小限制从200K改为20M)。编辑好保存完最好重启下iis服务! 3、重启iis方法:开始--运行--输入cmd回车--输入iisreset岂可重启iis 或者你也可以进开始--管理工具--服务--最下面有个World Wide Web Publishing Service的服务重启即可 注意:如果metabase.xml修改后想保存但是提示无法编辑,不能保存!这是由于你没有在iis中启用“允许直接编辑配置数据库”的功能。
希望能帮到你。非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
9. asp.net上传文件
在前台的.aspx文件中,在Form中间加:
<input id="File1" type="file" runat="server" width="540" />
在后台的.aspx.cs中:
button_click()
{
  ①上传按钮不可用,标签=“正在上传……”
  ②上传文件
  ③上传结束
  ④上传按钮可用,标签=“上传结束!”
        string fileName = this.File1.PostedFile.FileName;
        int length = fileName.Length - fileName.LastIndexOf("\\") - 1;
        fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1, length);
        string path = Server.MapPath("upload\\");
        string pathA = path + fileName;
        try
        {
            //1.检查一下该文件是否存在
            if (!File.Exists(pathA))
            {
                //不存在在,则上传。
                File1.PostedFile.SaveAs(path + fileName);
                //①不能写"上传按钮不可用,"
                //如果有标签Label1,
                this.Label1.text = “正在上传……”;
            }
            else
            {
                //存在,则提示并且返回。
                this.Label1.text = "该文件已经存在!请删除后再传;
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
}
上面是完整的代码.已经用过,非常好使.
你可以对照一下,看哪里错了.
这里用的不是VS2005以后版提供的upfile控件,而是早一些的html控件. 
还有,在.aspx.cs文件中,别忘记加:
Using System.IO;
10. asp.net(c#)如何上传大文件
(1)想要想上传大文件,必须在web.config文件中进行配置。
(2)在节点中添加如下代码即可:<httpRuntime maxRequestLength="2097151"/>。
(3)这个代码就是表示设置最大请求值,上传文件也就相当于请求。“maxRequestLength”单位为KB,最大值为2097151,如果不设置,默认为4096 KB (4 MB)。也就是说上传的文件最大可以上传2G以内的文件。
(4)一般没有配置的话,默认只能上传4M以内的文件。配置了的话就可以上传更大的文件。
