改装+;Restful c#上传文件

改装+;Restful c#上传文件,c#,android,.net,rest,retrofit,C#,Android,.net,Rest,Retrofit,我通过使用Multiparti对Android进行改造来发送文件,但是在我的服务器上,我使用.Net C#构建Restful服务,那么我如何创建Restful来接收来自Reformation/Android的文件 样本: [RoutePrefix("rest/files")] public class ReceiveImagesController : ApiController { [AcceptVerbs("POST")] [Route("SendFiles")]

我通过使用Multiparti对Android进行改造来发送文件,但是在我的服务器上,我使用.Net C#构建Restful服务,那么我如何创建Restful来接收来自Reformation/Android的文件

样本:

[RoutePrefix("rest/files")]
public class ReceiveImagesController : ApiController
{
    [AcceptVerbs("POST")]
    [Route("SendFiles")]

    public string sendFiles()
    {
        string retorno = "";
        string path = "C:/temp";

       // byte[] Bytes = new byte[files.Inpu]



        return retorno;
    }
}

我的示例代码和我在webapi 2中使用的文件上传。我认为你的问题将解决以下代码

sing System;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Http;

namespace WebMvcTest.Controllers
{
   [System.Web.Http.RoutePrefix("api/test")]
    public class FileUploadController : ApiController
    {

        [System.Web.Http.Route("files")]
        [System.Web.Http.HttpPost]
        [ValidateMimeMultipartContentFilter]
        public async Task<FileResult> UploadSingleFile()
        {
            var streamProvider = new MultipartMemoryStreamProvider();
            await Request.Content.ReadAsMultipartAsync(streamProvider);

            string descriptionResult = string.Empty;
            var description =
                streamProvider.Contents.AsEnumerable()
                    .FirstOrDefault(T => T.Headers.ContentDisposition.Name == "\"description\"");
            if (description != null)
            {
                descriptionResult = await description.ReadAsStringAsync();
            }

            return new FileResult
            {
                FileNames = streamProvider.Contents.AsEnumerable().Select(T => T.Headers.ContentDisposition.FileName).ToArray(),
                Names = streamProvider.Contents.AsEnumerable().Select(T => T.Headers.ContentDisposition.FileName).ToArray(),
                ContentTypes = streamProvider.Contents.AsEnumerable().Where(T => T.Headers.ContentType != null).Select(T => T.Headers.ContentType.MediaType).ToArray(),
                Description = descriptionResult,
                CreatedTimestamp = DateTime.UtcNow,
                UpdatedTimestamp = DateTime.UtcNow,
            };
        }
    }
}
sing系统;
使用System.Linq;
使用System.Net.Http;
使用System.Threading.Tasks;
使用System.Web.Http;
命名空间WebMvcTest.Controllers
{
[System.Web.Http.RoutePrefix(“api/test”)]
公共类FileUploadController:ApicController
{
[System.Web.Http.Route(“文件”)]
[System.Web.Http.HttpPost]
[验证EMIMememultipartContentFilter]
公共异步任务上载SingleFile()
{
var streamProvider=新的MultipartMemoryStreamProvider();
wait Request.Content.ReadAsMultipartAsync(streamProvider);
string descriptionResult=string.Empty;
变量描述=
streamProvider.Contents.AsEnumerable()
.FirstOrDefault(T=>T.Headers.ContentDisposition.Name==“\”描述\”);
if(说明!=null)
{
descriptionResult=wait description.ReadAsStringAsync();
}
返回新文件结果
{
FileNames=streamProvider.Contents.AsEnumerable().Select(T=>T.Headers.ContentDisposition.FileName).ToArray(),
Names=streamProvider.Contents.AsEnumerable().Select(T=>T.Headers.ContentDisposition.FileName).ToArray(),
ContentTypes=streamProvider.Contents.AsEnumerable()。其中(T=>T.Headers.ContentType!=null)。选择(T=>T.Headers.ContentType.MediaType)。ToArray(),
Description=Description结果,
CreatedTimestamp=DateTime.UtcNow,
UpdatedTimestamp=DateTime.UtcNow,
};
}
}
}