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以內的文件。配置了的話就可以上傳更大的文件。