Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api 如何将文件上载到服务器?_Asp.net Web Api_C# 6.0 - Fatal编程技术网

Asp.net web api 如何将文件上载到服务器?

Asp.net web api 如何将文件上载到服务器?,asp.net-web-api,c#-6.0,Asp.net Web Api,C# 6.0,这是我的api [HttpPost] [Route("uploadfile")] public HttpResponseMessage PostFile(HttpRequest request) { HttpResponseMessage result = null; var httpRequest = request;//HttpContext.Current.Request; if (httpRequest.F

这是我的api

[HttpPost]        
[Route("uploadfile")]

    public HttpResponseMessage PostFile(HttpRequest request)
    {
        HttpResponseMessage result = null;
        var httpRequest = request;//HttpContext.Current.Request;
        if (httpRequest.Files.Count > 0)
        {
            var docfiles = new List<string>();
            foreach (string file in httpRequest.Files)
            {
                var postedFile = httpRequest.Files[file];
                var filePath = HttpContext.Current.Server.MapPath("Uploads/" + postedFile.FileName);
                postedFile.SaveAs(filePath);

                docfiles.Add(filePath);
            }
            result = Request.CreateResponse(HttpStatusCode.Created, docfiles);
        }
        else
        {
            result = Request.CreateResponse(HttpStatusCode.BadRequest);
        }
        return result;
    }
我犯了个错误{ “消息”:“此资源不支持请求实体的媒体类型‘多部分/表单数据’。”, “exceptionMessage”:“没有MediaTypeFormatter可用于从媒体类型为“multipart/form data”的内容中读取类型为“HttpRequest”的对象。”, “exceptionType”:“System.Net.Http.UnsupportedMediaTypeException”, “stackTrace”:“在System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent内容,类型,IEnumerable
1格式化程序,IFormatterLogger格式化程序记录器,CancellationToken CancellationToken)位于System.Net.Http.HttpContentExtensions.ReadAsAsync位于System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync的(HttpRequestMessage请求,类型,IEnumerable
1格式化程序,IFormatterLogger格式化程序记录器,CancellationToken CancellationToken)
}

您还没有问过任何问题。会发生什么?您希望发生什么?您同时上载三件事是有原因的吗?我想将一个文件从客户端上载到服务器。那么,为什么要上载字符串、文件流和字节数组呢?试着一次只做一件事……它的文件名、文件和文件大小是否存在任何问题上传文件的方法?
  private async void button_Click(object sender, RoutedEventArgs e)
   {
   byte[] a = File.ReadAllBytes(@"C:\My folder\MyFile.txt");
        FileStream stream = File.Open(@"C:\My folder\MyFile.txt", FileMode.Open);

        Upload(@"http://localhost:56885/uploadfile", "MyFile", stream, a);

        MessageBox.Show("File uploaded Successfully");
   }

   private Stream Upload(string url, string param1, 
   Stream fileStream, byte[] fileBytes)        
   {
        HttpContent stringContent = new StringContent(param1);
        HttpContent fileStreamContent = new StreamContent(fileStream);
        HttpContent bytesContent = new ByteArrayContent(fileBytes);
        using (var client = new HttpClient())
        using (var formData = new MultipartFormDataContent())
        {
            formData.Add(stringContent, "param1", "param1");
            formData.Add(fileStreamContent, "file1", "file1");
            formData.Add(bytesContent, "file2", "file2");

            var response = client.PostAsync(url, formData).Result;

            if (!response.IsSuccessStatusCode)
            {
                return null;

            }

            MessageBox.Show("File uploaded Successfully");
            return response.Content.ReadAsStreamAsync().Result;
        }

    }