当前位置: 首页 > news >正文

MVC 外网 上传 下载 实现方式(一)

本人在实现第三方文件存储时,为实现Web网络的上传和下载 的实现费了一些时间,然后总结到的一些问题: 如有思路狭隘之处还望指正!

文件上传时:

实现方式 为:

客户端=》第三方=》服务器(优点:从客户到存储服务器 相比 客户端=》服务器=》第三方 上传效率更高。)

但是 通过Web 实现的时候 默认一般实现方式从浏览器 =》服务器=》第三方存储。

如果想实现直接从浏览器到第三方存储 暂时实现为利用javaScript跨域上传到第三方存储服务器(这些第三方肯定提供支持) 

上传方式代码后续会加上: 目前只是打通了API的大部分通道!

文件下载:

代码如下,做了简要下载。之后再深入解析

 1  /// <summary>
 2         /// 文件下载
 3         /// </summary>
 4         /// <param name="filename">要下载的文件名称</param>
 5         /// <returns></returns>
 6         public ActionResult DownFiles(string filename)
 7         {
 8             ///要下载的文件
 9             string tempfilename = filename == null ? filenamekey : filename;
10             string key = filenamekey;
11             ///得到网络上的文件路径如:http://baidu.com/123.avi
12             string downurl = VideoService.MakeGetToken(key);
13             ///利用webClient抓取到此地址并且以流的方式接收到!
14             WebClient wc = new WebClient();
15             Stream downstream=  wc.OpenRead(new Uri(downurl));
16             string urlfilename = Url.Encode(tempfilename);
17             if (Request.Browser.Browser.Contains("Firefox"))
18             {
19                 urlfilename = tempfilename;
20             }
21             ///响应到Web上
22             return File(downstream, "application/octet-stream", urlfilename);
23 
24         }
View Code

此方法可以实现网络抓取文件方式!

如有更好方式,欢迎交流!

转载于:https://www.cnblogs.com/vktun/p/4346875.html

相关文章:

  • asp.net Ajax Post 请求一般处理程序
  • 我的博客开通了!
  • ASP.NET MVC3默认提供了11种ActionResult的实现
  • 实现GetHashCode时要遵循的规则
  • 贪心+模拟 Codeforces Round #288 (Div. 2) C. Anya and Ghosts
  • 用linqPad帮助你快速学习LINQ
  • Cacti监控Tomcatserver实现过程
  • C++ 多继承与虚基类
  • Set集合
  • Solr4.7从数据库导数据
  • 【转】 Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
  • hdu 2335 Containers
  • Druid Indexing 服务
  • iOS7中弹簧式列表的制作
  • python实现虚拟茶话会
  • hexo+github搭建个人博客
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 2019年如何成为全栈工程师?
  • ERLANG 网工修炼笔记 ---- UDP
  • Java到底能干嘛?
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • PHP 小技巧
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 分类模型——Logistics Regression
  • 排序算法之--选择排序
  • 如何用vue打造一个移动端音乐播放器
  • 设计模式 开闭原则
  • 我这样减少了26.5M Java内存!
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $.ajax中的eval及dataType
  • (1)(1.13) SiK无线电高级配置(五)
  • (备忘)Java Map 遍历
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (三)docker:Dockerfile构建容器运行jar包
  • (三)终结任务
  • (四)c52学习之旅-流水LED灯
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net Stream篇(六)
  • .NET 表达式计算:Expression Evaluator
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET多线程执行函数
  • .net流程开发平台的一些难点(1)
  • .Net语言中的StringBuilder:入门到精通
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [.net]官方水晶报表的使用以演示下载
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [2023-年度总结]凡是过往,皆为序章