如何通过ASP.NET MVC中的api调用在服务器上上传文件 [英] How to upload a file on a server through api call in asp.net mvc

查看:448
本文介绍了如何通过ASP.NET MVC中的api调用在服务器上上传文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

public ActionResult Index(PublishPost post, HttpPostedFileBase file)
{
    var apiURL = "http://test.sa.com/rest/social/update/1161/upload?access_token=6fWV564kj3drlu7rATh8="
    WebClient webClient = new WebClient();
    byte[] responseBinary = webClient.UploadFile(apiUrl, file.FileName);
    string response = Encoding.UTF8.GetString(responseBinary);
    /* Giving error here. How to proceed?
}

我想将一个文件上传到该URL,响应如上图所示.如何在C#中进一步进行相同的处理?请帮助

I want to upload a single file to this url and the response is shown in the figure above. How to proceed further with the same in C#? Please help

推荐答案

尝试如下所示的代码.

public ActionResult Index(PublishPost post, HttpPostedFileBase file)
{
    var apiURL = "http://test.sa.com/rest/social/update/1161/upload?access_token=6fWV564kj3drlu7rATh8="
    
    using (HttpClient client = new HttpClient())
    {
        using (var content = new MultipartFormDataContent())
        {
            byte[] fileBytes = new byte[file.InputStream.Length + 1];                         
            file.InputStream.Read(fileBytes, 0, fileBytes.Length);
            var fileContent = new ByteArrayContent(fileBytes);
            fileContent.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") { FileName = file.FileName };
            content.Add(fileContent);
            var result = client.PostAsync(apiURL, content).Result;
            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                return new 
                {
                    code = result.StatusCode,
                    message = "Successful",
                    data = new 
                    {
                        success = true,
                        filename = file.FileName
                    }
                };
            }
            else
            {
                return new 
                {
                    code = result.StatusCode,
                    message = "Error"
                };
            }
        }
    }
}

这篇关于如何通过ASP.NET MVC中的api调用在服务器上上传文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆