谁知道怎么把BASE64转换成HttpPostedFile啊。。。。求救了

我真的是青蛙 2015-07-29 03:20:01
客户端要传一个BASE64的图片到服务器的WEBAPI,服务器里面因为很多原因,里面需要把BASE64换成HttpPostedFile,
谁能给段代码啊
...全文
678 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南野鹤 2015-12-09
  • 打赏
  • 举报
回复
引用 5 楼 wanghui0380 的回复:
实际上,我现在个人更喜欢用httpclient类而不是webclient
using (var client = new HttpClient())
{
    using (var content = new MultipartFormDataContent())
    {
        var values = new[]
        {
//表单值部分
            new KeyValuePair<string, string>("Foo", "Bar"),
            new KeyValuePair<string, string>("More", "Less"),
        };

        foreach (var keyValuePair in values)
        {
            content.Add(new StringContent(keyValuePair.Value), keyValuePair.Key);
        }

//文件域部分
        var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(fileName));
        fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "Foo.txt"
        };
        content.Add(fileContent);

        var requestUri = "/api/action";
        var result = client.PostAsync(requestUri, content).Result;
    }
}
这个在webapi里 怎么接收? 谢谢
wanghui0380 2015-07-29
  • 打赏
  • 举报
回复
实际上,我现在个人更喜欢用httpclient类而不是webclient
using (var client = new HttpClient())
{
    using (var content = new MultipartFormDataContent())
    {
        var values = new[]
        {
//表单值部分
            new KeyValuePair<string, string>("Foo", "Bar"),
            new KeyValuePair<string, string>("More", "Less"),
        };

        foreach (var keyValuePair in values)
        {
            content.Add(new StringContent(keyValuePair.Value), keyValuePair.Key);
        }

//文件域部分
        var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(fileName));
        fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "Foo.txt"
        };
        content.Add(fileContent);

        var requestUri = "/api/action";
        var result = client.PostAsync(requestUri, content).Result;
    }
}
wanghui0380 2015-07-29
  • 打赏
  • 举报
回复
ps:我不知道你要使用什么东西,所以Base64 str---> byte[]-->stream 这一步基本就是必须的 如果你是C# winform 客户端,同时如果你使用webclient 完成post, 那就百度“C# webclient post file”(把其中读本地文件入stream改写成你自己的base64 to stream就可以了)
wanghui0380 2015-07-29
  • 打赏
  • 举报
回复
没空写代码,不过提供基本思路 Base64 str---> byte[]-->stream 然后new 一个HttpPostedFile 把上面的sream 写入HttpPostedFile的InputStream属性(注意,请直接对InputStream流操作,别赋值,他是只读滴,你可以操作不可以赋值) 上面的每一步你都能百度到 “C# base64 to byte[]” ,"C# byte[] to stream" ,"c# 一个stream 写到另一个stream",所以我就不详细写了
我真的是青蛙 2015-07-29
  • 打赏
  • 举报
回复
百度GOOGLE几个小时了无果,自己顶一下
特别 2015-07-29
  • 打赏
  • 举报
回复
Convert.FromBase64String(base64编码的内容) 然后将字节写到文件中去

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧