资源简介
以下程序在.NET2005,系统XP中测试通过:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace TQSystem.Com
{
class UpDownLoadFile
{
/// <summary>
/// WebClient上传文件至服务器(不带进度条)
/// </summary>
/// <param name="fileNameFullPath">要上传的文件(全路径格式)</param>
/// <param name="strUrlDirPath">Web服务器文件夹路径</param>
/// <returns>True/False是否上传成功</returns>
public bool UpLoadFile(string fileNameFullPath, string strUrlDirPath)
{
//得到要上传的文件文件名
string fileName = fileNameFullPath.Substring(fileNameFullPath.LastIndexOf("\\") 1);
//新文件名由年月日时分秒及毫秒组成
string NewFileName = DateTime.Now.ToString("yyyyMMddhhmmss")
DateTime.Now.Millisecond.ToString()
fileNameFullPath.Substring(fileNameFullPath.LastIndexOf("."));
//得到文件扩展名
string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") 1);
if (strUrlDirPath.EndsWith("/") == false) strUrlDirPath = strUrlDirPath "/";
//保存在服务器上时,将文件改名(示业务需要)
strUrlDirPath = strUrlDirPath NewFileName;
// 创建WebClient实例
WebClient myWebClient = new WebClient();
myWebClient.Credentials = CredentialCache.DefaultCredentials;
// 将要上传的文件打开读进文件流
FileStream myFileStream = new FileStream(fileNameFullPath, FileMode.Open, FileAccess.Read);
BinaryReader myBinaryReader = new BinaryReader(myFileStream);
try
{
byte[] postArray = myBinaryReader.ReadBytes((int)myFileStream.Length);
//打开远程Web地址,将文件流写入
Stream postStream = myWebClient.OpenWrite(strUrlDirPath, "PUT");
if (postStream.CanWrite)
{
postStream.Write(postArray, 0, postArray.Length);
}
else
{
//MessageBox.Show("Web服务器文件目前不可写入,请检查Web服务器目录权限设置!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
postStream.Close();//关闭流
return true;
}
catch (Exception exp)
{
//MessageBox.Show("文件上传失败:" exp.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
}
/// <summary>
/// 下载服务器文件至客户端(不带进度条)
/// </summary>
/// <param name="strUrlFilePath">要下载的Web服务器上的文件地址(全路径 如:http://www.dzbsoft.com/test.rar)</param>
/// <param name="Dir">下载到的目录(存放位置,机地机器文件夹)</param>
/// <returns>True/False是否上传成功</returns>
public bool DownLoadFile(string strUrlFilePath, string strLocalDirPath)
{
// 创建WebClient实例
WebClient client = new WebClient();
//被下载的文件名
string fileName = strUrlFilePath.Substring(strUrlFilePath.LastIndexOf("/"));
//另存为的绝对路径+文件名
string Path = strLocalDirPath fileName;
try
{
WebRequest myWebRequest = WebRequest.Create(strUrlFilePath);
}
catch (Exception exp)
{
MessageBox.Show("文件下载失败:" exp.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
try
{
client.DownloadFile(strUrlFilePath, Path);
return true;
}
catch (Exception exp)
{
MessageBox.Show("文件下载失败:" exp.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
}
/// <summary>
/// 下载带进度条代码(普通进度条)
/// </summary>
/// <param name="URL">网址</param>
/// <param name="Filename">文件名</param>
/// <param name="Prog">普通进度条ProgressBar</param>
/// <returns>True/False是否下载成功</returns>
public bool DownLoadFile(string URL, string Filename, ProgressBar Prog)
{
try
{
System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL); //从URL地址得到一个WEB请求
System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse(); //从WEB请求得到WEB响应
long totalBytes = myrp.ContentLength; //从WEB响应得到总字节数
Prog.Maximum = (int)totalBytes; //从总字节数得到进度条的最大值
System.IO.Stream st = myrp.GetResponseStream(); //从WEB请求创建流(读)
System.IO.Stream so = new System.IO.FileStream(Filename, System.IO.FileMode.Create); //创建文件流(写)
long totalDownloadedByte = 0; //下载文件大小
byte[] by = new byte[1024];
int osize = st.Read(by, 0, (int)by.Length); //读流
while (osize > 0)
{
totalDownloadedByte = osize totalDownloadedByte; //更新文件大小
Application.DoEvents();
so.Write(by, 0, osize); //写流
Prog.Value = (int)totalDownloadedByte; //更新进度条
osize = st.Read(by, 0, (int)by.Length); //读流
}
so.Close(); //关闭流
st.Close(); //关闭流
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 下载带进度条代码(状态栏式进度条)
/// </summary>
/// <param name="URL">网址</param>
/// <param name="Filename">文件名</param>
/// <param name="Prog">状态栏式进度条ToolStripProgressBar</param>
/// <returns>True/False是否下载成功</returns>
public bool DownLoadFile(string URL, string Filename, ToolStripProgressBar Prog)
{
try
{
System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL); //从URL地址得到一个WEB请求
System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse(); //从WEB请求得到WEB响应
long totalBytes = myrp.ContentLength; //从WEB响应得到总字节数
Prog.Maximum = (int)totalBytes; //从总字节数得到进度条的最大值
System.IO.Stream st = myrp.GetResponseStream(); //从WEB请求创建流(读)
System.IO.Stream so = new System.IO.FileStream(Filename, System.IO.FileMode.Create); //创建文件流(写)
long totalDownloadedByte = 0; //下载文件大小
byte[] by = new byte[1024];
int osize = st.Read(by, 0, (int)by.Length); //读流
while (osize > 0)
{
totalDownloadedByte = osize totalDownloadedByte; //更新文件大小
Application.DoEvents();
so.Write(by, 0, osize); //写流
Prog.Value = (int)totalDownloadedByte; //更新进度条
osize = st.Read(by, 0, (int)by.Length); //读流
}
so.Close(); //关闭流
st.Close(); //关闭流
return true;
}
catch
{
return false;
}
}
}
}
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Text;
namespace Stl_UpLoadFile
{
class ButtonState
{
public const string BTN_UP = “上传“;
public const string BTN_STOP = “停止“;
public const string BTN_CANCEL = “取消“;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 52736 2012-04-05 17:37 WinFrom上传文件\WinFrom通过WebClient上传下载文件.doc
文件 36864 2009-03-31 18:32 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\bin\Debug\Stl_UpLoadFile.exe
文件 73216 2009-03-31 18:32 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\bin\Debug\Stl_UpLoadFile.pdb
文件 5632 2005-11-11 22:25 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\bin\Debug\Stl_UpLoadFile.vshost.exe
文件 3263 2009-03-31 18:34 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\bin\Debug\UploadFile.xm
文件 24064 2012-04-11 18:52 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\bin\Release\Stl_UpLoadFile.exe
文件 52736 2012-04-11 18:52 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\bin\Release\Stl_UpLoadFile.pdb
文件 14328 2012-04-11 19:07 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\bin\Release\Stl_UpLoadFile.vshost.exe
文件 490 2007-07-21 02:33 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\bin\Release\Stl_UpLoadFile.vshost.exe.manifest
文件 2228 2012-04-11 18:53 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\bin\Release\UploadFile.xm
文件 285 2008-12-09 17:28 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\ButtonState.cs
文件 570 2009-03-31 17:47 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\ChangeIP.cs
文件 4037 2009-03-31 17:46 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\ChangeIP.Designer.cs
文件 5814 2008-12-09 17:28 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\ChangeIP.resx
文件 878 2008-12-09 17:28 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\FileData.cs
文件 2530 2008-12-09 17:28 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\FileState.cs
文件 180 2009-03-31 17:43 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Debug\Stl_UpLoadFile.ChangeIP.resources
文件 908 2009-03-31 17:43 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Debug\Stl_UpLoadFile.csproj.GenerateResource.Cache
文件 36864 2009-03-31 18:32 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Debug\Stl_UpLoadFile.exe
文件 73216 2009-03-31 18:32 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Debug\Stl_UpLoadFile.pdb
文件 180 2009-03-31 17:43 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Debug\Stl_UpLoadFile.Properties.Resources.resources
文件 180 2009-03-31 17:43 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Debug\Stl_UpLoadFile.UpLoadFile.resources
文件 180 2012-04-11 18:21 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Release\Stl_UpLoadFile.ChangeIP.resources
文件 1294 2012-04-11 19:07 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Release\Stl_UpLoadFile.csproj.FileListAbsolute.txt
文件 913 2012-04-11 18:23 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Release\Stl_UpLoadFile.csproj.GenerateResource.Cache
文件 24064 2012-04-11 18:52 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Release\Stl_UpLoadFile.exe
文件 52736 2012-04-11 18:52 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Release\Stl_UpLoadFile.pdb
文件 180 2012-04-11 18:21 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Release\Stl_UpLoadFile.Properties.Resources.resources
文件 180 2012-04-11 18:21 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Release\Stl_UpLoadFile.UpLoadFile.resources
文件 4608 2012-04-11 18:22 WinFrom上传文件\支持大文件的C#文件上传源码\Stl_UpLoadFile\obj\Release\TempPE\Properties.Resources.Designer.cs.dll
............此处省略43个文件信息
相关资源
- Hosts文件管理工具
- 通过C#自带的头文件(类)获取Windo
- C# 邮件群发示例 源码下载18952
- 批量陕西音乐广播超级麦克风节目录
- 疯子ftp上传工具源码传送数据到服务
- 基于com串口的文件发送和接收
- ax播放器实现文件拖入播放和拖动到可
- gif图片转换成jpg文件格式
- C#实现 用口令加密Bat文件
- DotNetZip 解压缩 以及分卷压缩类
- C# 快捷查看文件夹下所有文件的MD5
- C# 文件編碼轉換器FileCodeConvert
- C# 文件前后加某些字符串
- 统计大文件每个字符出现的次数
- C# 文件编码转换工具(支持UTF-8/UTF-
- pdf文件打印预览(需安装DevExpress)
- Word文件转Html文档目录
- asp.net 多文件上传源码
- 用C#.NET实现删除指定文件
- Jquery 相册插件 完整
- Jsonp跨域登录 (同步登录 同步退出)
- C# 简单模拟功能以及ping
- C# 批量重命名文件名
- 文件分割合并
- 根据文件列表,合并文本文件,保持
- 提取exe dll文件中的 资源图片文件
- iis6建站工具
- TCP文件合并
- C# 获取本地文件基本信息
- C# 显示最近浏览过的文件
评论
共有 条评论