Web 端异步下载文件
Web 端异步下载文件
- 实现文件异步下载;
- 在服务端无法返回文件,或发生异常时给予提示。
JavaScript:
服务端返回的JSON对象形如:
{
code:200,
msg:'下载成功|未找到指定文件',
filePath:'/file/test.txt'
}
function downloadFile() {
var url = 'api/download';
var params = {...};
$.ajax({
type:'GET',
url:url,
data:params,
dataType:'json',
success:function(data){
if(data.code == 200){
//直接跳转到返回的文件路径
window.location.href = data.filePath;
} else {
//无法下载时, 提示
alert(data.msg);
}
},
error:function(xhr, s, e){
alert('请求错误');
}
})
}
Web API
[HttpGet]
public IHttpActionResult Download(string file)
{
if(string.IsNullOrWhiteSpace(file))
return Json(new { Code = 3, Msg = '文件名不允许为空' });
try
{
//检查是否有权限下载文件...
//查找文件...
//生成文件临时路径...
//等等..
return Json(new { Code = 200, Msg = '可成功下载', FilePath = '/file/test.txt' });
}
catch (Exception ex)
{
Log.Error(ex);
return Json(new { Code = 500, Msg = '服务器内部出现异常' });
}
}
Web 端异步下载文件的更多相关文章
- WebClient.DownloadFile(线程机制,异步下载文件)
线程机制(避免卡屏),异步下载文件. 我做网站的监控,WebClient.DownloadFile这个方法是我经常用到的,必要的时候肯定是要从网上下载些什么(WebRequest 也可以下载网络文件, ...
- 数据採集之Web端上传文件到Hadoop HDFS
前言 近期在公司接到一个任务.是关于数据採集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志採集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好近期都有在这方面 ...
- JAVA web端JS下载excel文件
JSP代码如下: JSP端引入jquery.easyui.min.js库: <script type="text/javascript" src="<c:ur ...
- C# 异步下载文件
在C#当中,利用WebClient这个核心类,可以轻易的打造一个下载器.但是这里想要强调的是,我们用的是异步操作.所谓异步,是相对于同步的概念而言的.比如Web中的Ajax就是基于异步的.它能够提供良 ...
- Django实现web端tailf日志文件
这是Django Channels系列文章的第二篇,以web端实现tailf的案例讲解Channels的具体使用以及跟Celery的结合 通过上一篇<Django使用Channels实现WebS ...
- js异步下载文件请求
注意 :通常下载文件是用get请求 window.location.href=url; 但是 我们需要下载完成监听,所以必须要异步执行.用常规的ajax是不可以的.我们要用blob对象来实现1.原生的 ...
- android开发步步为营之67:使用android开源项目android-async-http异步下载文件
android-async-http项目地址 https://github.com/loopj/android-async-http.android-async-http顾名思义是异步的http请求, ...
- C#异步下载文件--基于http请求
1.废话不多说,直接上代码: using System; using System.IO; using System.Net; namespace AsyncProgram { class Progr ...
- WebClient异步下载文件
namespace ConsoleAppSyncDownload{ class Program { static void Main(string[] args) { ...
随机推荐
- VScode 中 vue文件template中不能使用tab补齐标签
选择 文件-->首选项-->设置-->搜索 emmet,选择 编辑 setting.json, 添加下列代码: "emmet.includeLanguages" ...
- .net js有数据 但是跳转不到操作页
首先看的是:js 的 model 传了 两个参数 在接着打开操作页 可以看到,这一页有三个参数.id是可以自动生成的,所以不让他显示,去掉 如上就可以了 ,传的参数数量不对 ,下次注意的撒!
- .net中使用 道格拉斯-普特 抽希轨迹点
Douglas一Peukcer算法由D.Douglas和T.Peueker于1973年提出,简称D一P算法,是目前公认的线状要素化简经典算法.现有的线化简算法中,有相当一部分都是在该算法基础上进行改进 ...
- raise error
raise TypeError("参数q_type 错误 ")
- ESP8266 RTOS SDK编译环境搭建
前提条件 1. linux操作系统或者windows下的linux虚拟机或者OS X操作系统 2. 联网 下载 * [Mac](https://dl.espressif.com/dl/xtensa-l ...
- LeetCode-7-反转整数-c# 版本
c# 版本 // 给定一个 32 位有符号整数,将整数中的数字进行反转. public class Solution { public int Reverse(int x) { / // 边界判断 / ...
- Vue.js数据响应基础原理
许多前端JavaScript框架(例如Angular,React和Vue)都有自己的数据相应引擎.通过了解相应性及其工作原理,您可以提高开发技能并更有效地使用JavaScript框架.在视频和下面的文 ...
- Pocket Gems面经prepare: Diamond and Ruby
说我有一个背包,有n个格子,一个格子可以放5个钻石,一个钻石10块钱,一个格子可以放5个ruby,一个ruby 5块钱, 一个格子可以放一个装备,一个装备25块钱. 然后给你n个钻石n个ruby n个 ...
- 解决postman环境切换,自动获取api签名时间及签名
postman调试api接口时,常遇到两个问题: 1.环境分为开发环境,测试环境,正式环境,如何只写一个接口,通过切换postman环境来实现不同环境的接口调用? 2. api接口请求时往往会添加,来 ...
- C++中浮点数比较大小,即小数比较大小
浮点数比较大小,由于精度问题,所以直接比较有时可能会出错. 单精度数7位有效数字. (float)双精度数16位有效数字.(double) 单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^ ...