转:http://www.cnblogs.com/7in10/archive/2008/05/20/1203402.html
方案一:
注意:要开启虚拟目录的“写入”权限,要不然就报 403 错误
工作中用到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
再然后
设置目标文件夹的可写性
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Net;
using
System.IO;
namespace
Common
{
/**/ /// <summary>
/// winform形式的文件传输类
/// </summary>
public class WinFileTransporter
{
/**/ /// <summary>
/// WebClient上传文件至服务器,默认不自动改名
/// </summary>
/// <param name="fileNamePath"> 文件名,全路径格式 </param>
/// <param name="uriString"> 服务器文件夹路径 </param>
public void UpLoadFile( string fileNamePath, string uriString)
{
UpLoadFile(fileNamePath, uriString, false );
}
/**/ /// <summary>
/// WebClient上传文件至服务器
/// </summary>
/// <param name="fileNamePath"> 文件名,全路径格式 </param>
/// <param name="uriString"> 服务器文件夹路径 </param>
/// <param name="IsAutoRename"> 是否自动按照时间重命名 </param>
public void UpLoadFile( string fileNamePath, string uriString, bool IsAutoRename)
{
string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf( " // " ) + 1 );
string NewFileName = fileName;
if (IsAutoRename)
{
NewFileName = DateTime.Now.ToString( " yyMMddhhmmss " ) + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf( " . " ));
}
string fileNameExt = fileName.Substring(fileName.LastIndexOf( " . " ) + 1 );