如何从不同文件夹中获取文件压缩它们并将它们从asp.net web api服务返回到移动客户端

时间:2014-10-25 00:26:35

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

实际上我正在尝试一次性返回多个文件(在与jQuery移动客户端请求相同的响应中),包括(html,.js,.css,.png图像文件),以便移动客户端可以下载他们作为新的更新。而且我被要求将其作为POST请求而不是GET请求。 这是我的Web API代码

       [Route("availableupdates")]
       [HttpPost]
       public HttpResponseMessage FilePackage()      
       {
         HttpResponseMessage response = null;
        var localFilePath = Directory.GetFiles(@"C:\Temp\Flower_Shop\Flower_Shop\images\i.png");
        if (!File.Exists(localFilePath[0]))
        {
          response = Request.CreateResponse(HttpStatusCode.Gone);
        }
      else
      {
          response = Request.CreateResponse(HttpStatusCode.OK);
          response.Content = new StreamContent(new FileStream(localFilePath[0], FileMode.Open,   FileAccess.Read));
          response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
          response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
          response.Content.Headers.ContentDisposition.FileName = "i";                
      }
      return response;
    }

现在的问题是,所有这些(html,.js,.css,.png)文件都是另一个小型移动应用程序(显然位于同一应用程序内的不同文件夹中)的一部分,它与服务器位于同一服务器上Web API RESTFUL服务本身和上面的代码我只是硬编码其中一个图像文件的物理路径。我不知道如何从不同的文件夹和子文件夹中获取所有文件并将它们压缩在一起并发送给客户端。

如果有人向我解释MIMETYPE对压缩文件的作用,我会非常感激的另一件大事我是否需要将压缩文件作为JSON响应发送,因为我不知道这是一个好主意发回JSON响应。文件内容会发生什么变化?内容是否也会转换为JSON?

0 个答案:

没有答案