使用Web API上载和下载文件

时间:2013-04-04 13:21:36

标签: c# .net rest asp.net-web-api

我需要上传文件,处理它,然后在同一个POST请求中下载已处理的文件。

我没有找到很多关于Web API的文档来满足我的要求,所以我想出了一个基于网上不同帖子的解决方案。

我的最终解决方案如下:

public HttpResponseMessage PostFile(string fileName)
{
    try
    {
        var task = Request.Content.ReadAsStreamAsync();
        task.Wait();
        var requestStream = task.Result;
        var tempFile = System.Web.HttpContext.Current.Server.MapPath(string.Format("~/App_Data/{0}", fileName));
        var steam = File.Create(tempFile);
        requestStream.CopyTo(steam);
        steam.Close();
        requestStream.Close();
        var modifiedStream = DoStuffToFile(tempFile);
        var response = new HttpResponseMessage();
        response.Content = new StreamContent(modifiedStream);
        response.StatusCode = HttpStatusCode.Created;
        return response;
    }
    catch
    {
        throw new HttpResponseException(HttpStatusCode.InternalServerError);
    }
}

由于我没有Web API的经验,我想知道这段代码是否正常, 或者如果我遇到问题?

修改

代码按预期工作。我只是不确定它是否会导致任何问题或副作用,因为我忘了做一些可能被Web API考虑的事情。或者我可以发布一个文件并发回另一个文件并回复吗?

代码也被简化以保持紧凑(不检查重复文件,不清除旧文件等)

0 个答案:

没有答案