MVC 外网 上传 下载 实现方式(一)
本人在实现第三方文件存储时,为实现Web网络的上传和下载 的实现费了一些时间,然后总结到的一些问题: 如有思路狭隘之处还望指正!
文件上传时:
实现方式 为:
客户端=》第三方=》服务器(优点:从客户到存储服务器 相比 客户端=》服务器=》第三方 上传效率更高。)
但是 通过Web 实现的时候 默认一般实现方式从浏览器 =》服务器=》第三方存储。
如果想实现直接从浏览器到第三方存储 暂时实现为利用javaScript跨域上传到第三方存储服务器(这些第三方肯定提供支持)
上传方式代码后续会加上: 目前只是打通了API的大部分通道!
文件下载:
代码如下,做了简要下载。之后再深入解析
/// <summary>
/// 文件下载
/// </summary>
/// <param name="filename">要下载的文件名称</param>
/// <returns></returns>
public ActionResult DownFiles(string filename)
{
///要下载的文件
string tempfilename = filename == null ? filenamekey : filename;
string key = filenamekey;
///得到网络上的文件路径如:http://baidu.com/123.avi
string downurl = VideoService.MakeGetToken(key);
///利用webClient抓取到此地址并且以流的方式接收到!
WebClient wc = new WebClient();
Stream downstream= wc.OpenRead(new Uri(downurl));
string urlfilename = Url.Encode(tempfilename);
if (Request.Browser.Browser.Contains("Firefox"))
{
urlfilename = tempfilename;
}
///响应到Web上
return File(downstream, "application/octet-stream", urlfilename); }
此方法可以实现网络抓取文件方式!
如有更好方式,欢迎交流!
MVC 外网 上传 下载 实现方式(一)的更多相关文章
- 向linux服务器上传下载文件方式收集
向linux服务器上传下载文件方式收集 1. scp [优点]简单方便,安全可靠:支持限速参数[缺点]不支持排除目录[用法] scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ...
- mvc中文件上传下载
//控制器 public ActionResult FileUpLoad(HttpPostedFileBase f1) { string path = Server.MapPath("~/P ...
- C# --MVC实现简单上传下载
首先创建一个默认的控制器Defaultcontroller 然后生成视图View 在视图里面 创建文件选择器 创建上传.下载按钮 代码如下 <body> <div> <f ...
- spring mvc注解文件上传下载
需要两个包: 包如何导入就不介绍了,前端代码如下(一定要加enctype="multipart/form-data"让服务器知道是文件上传): <form action=&q ...
- spring mvc 实现文件上传下载
/** * 文件上传 * @param pictureFile */ @RequestMapping("/reportupload") public ResponseInfo up ...
- linux CentOS 安装rz和sz命令 lrzsz 实现windows和linux之间的文件上传 下载
https://blog.nbhao.org/1902.html https://bbs.csdn.net/topics/391989523 https://www.cnblogs.com/zhoul ...
- 基于Spring Mvc实现的Excel文件上传下载
最近工作遇到一个需求,需要下载excel模板,编辑后上传解析存储到数据库.因此为了更好的理解公司框架,我就自己先用spring mvc实现了一个样例. 基础框架 之前曾经介绍过一个最简单的spring ...
- Spring MVC的文件上传和下载
简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的.Spring MVC 使用Apache Commons FileUpload技术 ...
- Spring MVC 使用介绍(十四)文件上传下载
一.概述 文件上传时,http请求头Content-Type须为multipart/form-data,有两种实现方式: 1.基于FormData对象,该方式简单灵活 2.基于<form> ...
随机推荐
- 只需三步--轻松反编译Android Apk文件
安卓程序是通过java语言进行编写的,可以很容易进行反编译.很多apk文件被反编译后再二次打包,就成了自己的产品,很是流氓.下面我们来看看如何进行apk的反编译,以及常用的防反编译手段. 一.反编译A ...
- sync_object not in ('TBL_Territory')
sync_objec 不包含TBL_Territory这个字段
- svg gradient
SVG和canvas中是一样的,都是使用标准的HTML/CSS中的颜色表示方法,这些颜色都可以用于fill和stroke属性. 基本有下面这些定义颜色的方式: 1. 颜色名字: 直接使用颜色名字red ...
- 图片轮播器bcastr4.swf“&”符号的问题
bcastr4.swf是一个很不错的网页图片轮播器,我一直使用它作为网站首页图片轮播的控件. http://xiaogui.org/bcastr-open-source-flash-image-sil ...
- (一)sql入门 导读
从转行做软件始,就开始接触sql,但还是不怎么深入,回忆3月份找工作的时候,左关联都没有写出来,真是丢脸,以此博客做个认真的开始. 以后的日子,遇到了圆柱体的空心物体,我就应该联想到一样东西,那就是数 ...
- ceph_deploy部署ceph分布式文件系统
1.前期准备:centos6.5 minimal版本3台 选择其中一台作为一个安装节点,能无密码登录其他机器.ssh-keygen ssh-keygen -i ~/.ssh/id_rsa.pub no ...
- ToJson
/// <summary> /// DataTable转成Json /// </summary> /// <param name="jsonName" ...
- 设置Beyond Compare 为 Git 默认的比较工具
对于Beyond Compare4,Git版本号在2.2.0之后的,请在Git中依次输入以下命令: git config --global diff.tool bc3 git config --glo ...
- UITableView heightForHeaderInSection遇到的坑
出现这种现象只需要把 heightforfoot改为0.01 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSectio ...
- Java中excute,excuteUpdate,excuteQuery的区别
executeQuery(String sql) 执行select语句,它返回的是查询后得到记录集(resultset). executeUpdate(String sql) 执行 ...