工作中用到winform上传文件(-_-!,很少用winform,搞了半天)
碰到一点问题,解决如下
1、501 为实现错误
解决方法:
先把IISWEB服务扩展中的WebDev打开
然后
IIS站点添加MIME txt类型 常见的MIME类型如下
超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
再然后
设置目标文件夹的可写性
![](https://i-blog.csdnimg.cn/blog_migrate/5992fd57f643b61f654b295a3faf206d.png)
using System;
![](https://i-blog.csdnimg.cn/blog_migrate/5992fd57f643b61f654b295a3faf206d.png)
using System.Collections.Generic;
![](https://i-blog.csdnimg.cn/blog_migrate/5992fd57f643b61f654b295a3faf206d.png)
using System.Text;
![](https://i-blog.csdnimg.cn/blog_migrate/5992fd57f643b61f654b295a3faf206d.png)
using System.Net;
![](https://i-blog.csdnimg.cn/blog_migrate/5992fd57f643b61f654b295a3faf206d.png)
using System.IO;
![](https://i-blog.csdnimg.cn/blog_migrate/5992fd57f643b61f654b295a3faf206d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5992fd57f643b61f654b295a3faf206d.png)
namespace Common
![](https://i-blog.csdnimg.cn/blog_migrate/ec739a5aba25e8c428902ac5732abdd4.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
/// <summary>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// winform形式的文件传输类
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
/// </summary>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
public class WinFileTransporter
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
/// <summary>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// WebClient上传文件至服务器,默认不自动改名
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// </summary>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// <param name="fileNamePath">文件名,全路径格式</param>
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
/// <param name="uriString">服务器文件夹路径</param>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
public void UpLoadFile(string fileNamePath, string uriString)
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
UpLoadFile(fileNamePath, uriString, false);
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
/// <summary>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// WebClient上传文件至服务器
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// </summary>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// <param name="fileNamePath">文件名,全路径格式</param>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// <param name="uriString">服务器文件夹路径</param>
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
/// <param name="IsAutoRename">是否自动按照时间重命名</param>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
public void UpLoadFile(string fileNamePath, string uriString, bool IsAutoRename)
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("\\") + 1);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
string NewFileName = fileName;
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
if (IsAutoRename)
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf("."));
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
if (uriString.EndsWith("/") == false) uriString = uriString + "/";
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
uriString = uriString + NewFileName;
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
Utility.LogWriter log = new Utility.LogWriter();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
//log.AddLog(uriString, "Log");
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
//log.AddLog(fileNamePath, "Log");
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
/**/
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
/// 创建WebClient实例
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
WebClient myWebClient = new WebClient();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
myWebClient.Credentials = CredentialCache.DefaultCredentials;
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
// 要上传的文件
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
//FileStream fs = OpenFile();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
BinaryReader r = new BinaryReader(fs);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
byte[] postArray = r.ReadBytes((int)fs.Length);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
Stream postStream = myWebClient.OpenWrite(uriString, "PUT");
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
try
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
//使用UploadFile方法可以用下面的格式
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
//myWebClient.UploadFile(uriString,"PUT",fileNamePath);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
if (postStream.CanWrite)
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
postStream.Write(postArray, 0, postArray.Length);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
postStream.Close();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
fs.Dispose();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
log.AddLog("上传日志文件成功!", "Log");
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
else
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
postStream.Close();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
fs.Dispose();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
log.AddLog("上传日志文件失败,文件不可写!", "Log");
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
catch (Exception err)
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
postStream.Close();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
fs.Dispose();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
//Utility.LogWriter log = new Utility.LogWriter();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
log.AddLog(err, "上传日志文件异常!", "Log");
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
throw err;
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
finally
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
postStream.Close();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
fs.Dispose();
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
/**/
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
/// <summary>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// 下载服务器文件至客户端
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// </summary>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
/// <param name="URL">被下载的文件地址,绝对路径</param>
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
/// <param name="Dir">另存放的目录</param>
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
public void Download(string URL, string Dir)
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
WebClient client = new WebClient();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
string fileName = URL.Substring(URL.LastIndexOf("\\") + 1); //被下载的文件名
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
string Path = Dir + fileName; //另存为的绝对路径+文件名
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
Utility.LogWriter log = new Utility.LogWriter();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
try
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
WebRequest myre = WebRequest.Create(URL);
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
catch (Exception err)
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
//MessageBox.Show(exp.Message,"Error");
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
log.AddLog(err, "下载日志文件异常!", "Log");
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
try
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
client.DownloadFile(URL, fileName);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
BinaryReader r = new BinaryReader(fs);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
byte[] mbyte = r.ReadBytes((int)fs.Length);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
FileStream fstr = new FileStream(Path, FileMode.OpenOrCreate, FileAccess.Write);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
fstr.Write(mbyte, 0, (int)fs.Length);
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
fstr.Close();
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
catch (Exception err)
![](https://i-blog.csdnimg.cn/blog_migrate/12eaca64339418d2efa074beb8d9f307.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
//MessageBox.Show(exp.Message,"Error");
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
log.AddLog(err, "下载日志文件异常!", "Log");
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3e4dce920b035282aa4220b4436c2f9e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/292f3c6039a700dd07de0ef1e8d5deac.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/869ac817a1ac869a1f97936253d80fd5.png)
}
![](https://i-blog.csdnimg.cn/blog_migrate/5992fd57f643b61f654b295a3faf206d.png)
上网找的时候还有为朋友提供了winform上传的另一种解决方案,确实很有意思,也记录如下
http://www.cnblogs.com/njnudt/archive/2007/08/08/847324.html