利用HttpWebRequest上传文件

参考代码:

http://www.cnblogs.com/charles001/articles/1031515.html 

1.给定UploadUrl地址

 

View Code
  public void UploadFile(Stream postedStream, string fileName,
string uploadURL, string fileGroup, string fileType,
string specialPath, string userName, string uploadType)
{
if (String.IsNullOrEmpty(uploadURL))
{
throw new Exception("上传路径为空!");
}

HttpWebRequest webRequest = WebRequest.Create(uploadURL) as HttpWebRequest;
if (webRequest == null)
{
throw new Exception(String.Format("{0},地质创建失败!", uploadURL));
}

webRequest.Method = WebRequestMethods.Http.Post;

WebProxy proxy = new WebProxy();
proxy.UseDefaultCredentials = true;
webRequest.Proxy = proxy;

webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = postedStream.Length;
webRequest.Headers.Add("FileGroup", fileGroup);
webRequest.Headers.Add("FileType", fileType);
webRequest.Headers.Add("UploadType", uploadType);
webRequest.Headers.Add("FileName", System.Web.HttpUtility.UrlEncode(fileName));
webRequest.Headers.Add("UserName", userName);
webRequest.Headers.Add("SpecialFolderPath", System.Web.HttpUtility.UrlEncode(specialPath));

using (Stream responstStream = webRequest.GetRequestStream())
{

const int bufferLen = 65000;
byte[] buffer = new byte[bufferLen];
int count = 0;
while ((count = postedStream.Read(buffer, 0, bufferLen)) > 0)
{
responstStream.Write(buffer, 0, count);
}
responstStream.Close();
responstStream.Close();
}

try
{
webRequest.GetResponse().Close();
}
catch (WebException ex)
{
HttpWebResponse response = ex.Response as HttpWebResponse;
if (response != null)
{
throw new WebException(response.StatusDescription, ex);
}
throw ex;
}
catch (Exception exception)
{
throw exception;
}
}

 

mvc前台接受传递过来的文件

View Code
public ActionResult About()
{

var keys = Request.Headers.Keys;
Stream stream = Request.InputStream;

var FileGroup = Request.Headers["FileGroup"];
var FileType = Request.Headers["FileType"];
var UploadType = Request.Headers["UploadType"];
var FileName = Request.Headers["FileName"];
var UserName = Request.Headers["UserName"];
var SpecialFolderPath = Request.Headers["SpecialFolderPath"];
UploadFileModel fileModel = new UploadFileModel
{
FileGroup = FileGroup,
FileLength = 11,
UploadType = UploadType,
FileName = System.Web.HttpUtility.UrlDecode(FileName),
FileType = FileType,
UserName = UserName
};

String savePath = Server.MapPath("~/Content/File");
// String path = savePath + FileName;
string filePath = Path.Combine(savePath, FileName);
try
{


StreamReader sr = new StreamReader(stream);
Stream sw = new FileStream(filePath, FileMode.Create,FileAccess.Write,FileShare.None);
const int bufferLen = 65000;
byte []buff = new byte[bufferLen];
int index = 0;
while ((index = stream.Read(buff, 0, bufferLen)) > 0)
{
sw.Write(buff, 0, index);
}
sw.Flush();
sw.Close();
}
catch (Exception)
{

;
}
return View(fileModel);
}




转载于:https://www.cnblogs.com/ksport/archive/2012/04/10/2433517.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值