首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载功能MVC 4

下载功能MVC 4
EN

Stack Overflow用户
提问于 2013-04-17 21:52:07
回答 1查看 527关注 0票数 0

我已经创建了一个web,它通过OAuth将用户连接到dropbox。我使用一个API与Dropbox进行交互,Dropbox在本地工作,我希望这样做,但是当我将API部署到Azure服务器时,我无法下载。我预料到会发生这种情况,因为我的API目前很难被编码到机器上的路径上。下面是我使用的方法:注意:我通过一个ActionResult调用这个方法,作为我项目MVC部分的一部分。

代码语言:javascript
复制
public FileSystemInfo DownloadFile(string root, string path)
        {
            var uri = new Uri(new Uri(DropboxRestApi.ApiContentServer),
                String.Format("files?root={0}&path={1}",
                root, UpperCaseUrlEncode(path)));

            var oauth = new OAuth();
            var requestUri = oauth.SignRequest(uri, _consumerKey, _consumerSecret, _accessToken);

            var request = (HttpWebRequest) WebRequest.Create(requestUri);
            request.Method = WebRequestMethods.Http.Get;
            var response = request.GetResponse();

            var metadata = response.Headers["x-dropbox-metadata"];
            var file = ParseJson<FileSystemInfo>(metadata);

            using (Stream responseStream = response.GetResponseStream())
            using (MemoryStream memoryStream = new MemoryStream())
            {
                byte[] buffer = new byte[1024];
                int bytesRead;
                do
                {
                    bytesRead = responseStream.Read(buffer, 0, buffer.Length);                    
                    memoryStream.Write(buffer, 0, bytesRead);
                } while (bytesRead > 0);

                file.Data = memoryStream.ToArray();
            }                                    
            return file;                                    
        }

这就是我在操作结果中调用该方法的地方。

代码语言:javascript
复制
var file = api.DownloadFile("dropbox", "Public/downloadThis.jpg");
                    path = file.Path;
                    file.Save(@"....\Desktop\DemoTest\Downloads\downloadThis.jpg"); --- this is the problem & *Save* is a stream writer

在浏览器上从服务器下载文件时,是否有要遵循的过程?

EN

回答 1

Stack Overflow用户

发布于 2013-05-10 06:02:50

公共ActionResult下载(Models.downloadModel dowld,Models.LoggerView日志){

代码语言:javascript
复制
        string TC_ID = Request.QueryString["id"].ToString();
        string filename = TC_ID+"_LoggerData" + ".zip";
        Response.ContentType = "application/octet-stream";
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename);
        Response.TransmitFile(Server.MapPath("~/files/" + filename));
        Response.End();

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16070899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档