尽管浏览器预取/缓存,如何判断文件是否真正下载并保存?

2023-11-30

我正在创建一个脚本来保存下载统计信息,但我只想在文件实际下载时更新统计信息。

问题是浏览器(例如 Explorer 9、Chrome 等)会在“保存/打开”对话框仍然打开时自动开始下载文件。这意味着在用户指定保存位置之前(或者资源管理器仍然显示黄色警告栏),文件可以完全下载(我假设下载到浏览器指定的临时目录中)。

即使文件已成功下载,用户也可能决定取消保存。如何告诉浏览器不要自动开始下载?也许是一些 HTTP 标头? 还有其他解决方案吗?


你无法做你想做的事。这是不可能的,至少以你所要求的方式是不可能的。

你什么can要做的就是在安装程序中放入一些代码,这些代码在运行时连接到您的服务器,然后您的脚本可以跟踪它。这是常见的做法,但肯定是not万无一失。许多人下载软件并离线安装。 (特别是拨号用户,仍然有数千人。)此外,不能保证安装程序不会被防火墙软件或其他东西阻止。

所以这一切都取决于你需要知道它何时安装的程度。如果它很重要,那么您的安装人员需要在安装之前与服务器进行验证。当然,这可能会被破解,但你对此无能为力。但是,我怀疑它会满足您的目的。

另外,不要忘记每次下载会进行多次安装。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尽管浏览器预取/缓存,如何判断文件是否真正下载并保存? 的相关文章

  • 图像未完整显示在身体背景上

    例子 http jsbin com opokev 20 http jsbin com opokev 20 完整图片 http i53 tinypic com 347a8uu jpg http i53 tinypic com 347a8uu
  • rewrite_mod 已启用,但 .htaccess 不起作用

    我在 Amazon EC2 的 ubuntu 12 04 中使用 apache 2 2 我使用启用了 mod rewrite sudo a2enmod rewrite 并能够看到 apache2ctl M 现在我编写了以下 htaccess
  • 为什么 Number.isNaN() 对字符串返回 false?

    据我的理解NaN代表Not A Number Strings不是绝对的Numbers因此我希望下面的代码返回true对于字符串 然而 事实并非如此 console log Number isNaN Stack Overflow 有人可以澄清
  • 如何在 d3.js 中填充 svg 圆圈内的图像

    这是我在 svg 中填充圆圈的代码 var svgContainer d3 select body append svg attr width 1000 attr height 1000 var circles svgContainer s
  • PHP:在执行 php 脚本时显示“正在加载”页面

    这就是我现在所拥有的 我有一个网页 当访问该网页时 它会通过开放 API 连接到 Surveygizmo com 检索大量数据 然后将这些数据返回给我进行处理 此过程大约需要 10 12 秒 在执行时 页面只是处于 正在加载 状态 并且我会
  • 如何编辑 Woocommerce 单一产品元模板中显示的内容?

    我正在为客户做一些工作并使用 wordpress woocommerce 他们要求我将类别移动到我已经完成的单个产品页面上的产品名称下 但他们不希望它打印 类别 类别 1 类别 2 等 他们希望删除 类别 并且它实际上只列出类别的名称 而不
  • SQL 未插入到 Yii 中具有关系的表中

    我正在尝试创建一个用户 但所有值都没有插入到数据库中 Systems user 表与partys 表有关系 因为party id 是sytems user 的主键 没有插入任何内容 甚至没有错误 它只是返回到 创建 页面 这是我的架构 Ta
  • POST 之后在 PHP 中设置 Location 标头时避免 HTTP 302 响应代码

    我需要放一个201 CreatedPOST 请求的响应代码和 Location 标头 但由于某种原因我仍然收到 302 响应 这就是我所拥有的 header HTTP 1 1 201 header Location The new reso
  • javascript 中的自动转换:像 stringvar = 1+stringvar 这样完成时,不是应该将字符串转换为数字吗?

    火狐32 Win 7 使用暂存器时 var a 2 a 1 1 a console log a typeof a a 1 a 1 console log a typeof a 在控制台中导致 02 string 101 number 难道我
  • 在 Bluemix 中激活 PHP 扩展

    这纯粹是 Bluemix 问题 我的代码在本地主机上顺利运行 但是当我将其迁移到 Bluemix 时 我的数据库连接失败了 检查日志 我发现问题 调用未定义的函数 mysqli init HTTP 响应 500 我发现扩展已被禁用以使其更小
  • 如何使 Meteor 上的服务器可以访问文本文件

    我很惊讶我无法在这里搜索我的答案 似乎没有其他人遇到这个问题 当您运行meteor服务时 js html等被打包在 meteor local build文件夹中 但它似乎排除了不是js或html的内容 我有一个名为 magicsets 的文
  • EaselJS Alpha 遮罩滤镜

    我对 Canvas 还很陌生 我一直在尝试将图像颠倒过来EaselJS Alpha 蒙版 http www createjs com demos easeljs alphamaskreveal示例 以便初始图像清晰 并且您可以paint是模
  • 如何将十进制转换为二进制并将其位值恢复到数组中?

    例如 result func 14 The result应该 array 1 1 1 0 如何实施func decbin http docs php net decbin会产生一个字符串二进制字符串 echo decbin 14 outpu
  • 学说 - 获取下一个和上一个记录

    这样我就已经获取了一些记录 我已创建日期字段 现在我想按日期获取下一条和上一条记录 通过以下方式让它工作 qb this gt createQueryBuilder a next qb gt expr gt gt a created dat
  • Chrome 和 IE 上的滚动/延迟事件

    我试图让用户始终看到一个内容块 即使他向下滚动页面也是如此 他还应该能够上下滚动内容块 这是一个精简版本的小提琴 向您展示我的意思 http jsfiddle net 9ehfV 2 http jsfiddle net 9ehfV 2 人们
  • 如何从 vue 组件调用 App.vue 中的方法

    我有一个 vue 组件和一个 vue 元素声明 如下所示 Vue component todo item template li This is a todo li methods test function I am getting an
  • SplFileObject + LimitIterator + 偏移量

    我有两行数据文件 两行仅用于我的示例 实际上 该文件可以包含数百万行 并且我使用 SplFileObject 和 LimitIterator 进行偏移 但这种组合在某些情况下会有奇怪的行为 offset 0 file new SplFile
  • 将文件附加到 PHPMailer

    我目前正在开发一个项目 该项目将文件作为 blob 存储在数据库中 我需要将文件附加到电子邮件并通过 PHPMailer 发送出去 我熟悉 mail gt addAttachment 但是 这个函数似乎只接受文件路径 而我没有 我想知道是否
  • File_get_contents($url): 无法打开流

    我有一个脚本 我使用以下方法读取文件 file get contents urlencode url 我收到此错误 failed to open stream HTTP request failed HTTP 1 0 400 Bad req
  • 获取css规则、chrome扩展

    我正在开发 Chrome 扩展程序 它需要访问document styleSheets cssRules 它在某些网站上运行良好 例如w3school 但其他人则不然 比如堆栈溢出 我收到错误 Failed to read the cssR

随机推荐

  • 在调用委托之前将我的空检查代码变灰

    我在 VS 2015 中编写统一代码 这意味着它是在 c 4 中并且 null 条件运算符不可用 在调用委托之前 我进行了空检查 但代码是灰色的 是不是说灰码和注释一样无效呢 如果是这样 我应该怎么做才能防止调用空委托 public del
  • 无法从 grails 项目构建 war

    我正在构建 Grails 2 4 4 项目 我遇到了非常奇怪的问题 我可以 运行应用程序 我可以 编译 它 但我不能 战争 或 运行战争 它 将 src groovy 目录中的 Enum 类 AlertType 导入到域类 Alert 时出
  • VSTO - MS Office“配色方案”更改事件

    使用 VSTO 如何获取 MS Office 配色方案更改的通知 希望 Office 2010 中存在更好的东西 以下是我在 Office 2007 和 Word 中使用的内容 这不是任何通知 只是要检查的内容 const string O
  • AccountManager:invalidateAuthToken 不会使令牌失效

    我正在尝试从存储在 Android 设备中的 Google 帐户获取全新的令牌 但我得到的只是我过去几天缓存的旧令牌 看起来它被缓存在手机的某个地方 甚至没有发送互联网请求 我在没有互联网连接的情况下在应用程序中进行了测试 并且返回了相同的
  • PL/SQL 过程的同步。如何保证程序一次只执行一个? [复制]

    这个问题在这里已经有答案了 某些 PL SQL 过程需要花费大量时间进行评估 如重新计算和更新大量数据 我想限制将此过程评估为单个的执行上下文的数量 如果其他上下文执行它 则什么也不做 但我不知道在 PL SQL 代码中使用哪些原子操作 N
  • 接口 VS API VS 公共类

    我对这三个术语的含义和区别有点困惑 接口 APIs 公开课 我之前问过 API 和 Public 类之间有什么区别吗 这是问题 公共方法与公共 API 我明白了 但现在有了新概念界面 我又对Interface和API以及Public cla
  • 为什么 numpy 列表访问比普通 python 慢?

    我的印象是 numpy 对于列表操作会更快 但以下示例似乎表明情况并非如此 import numpy as np import time def ver1 a i for i in range 40 b 0 for i in range 4
  • Visual Studio 2015 jQuery 智能感知不工作

    因此 我创建了一个 Visual Studio 2015 空 ASP net Core 应用程序 并尝试使用 Bower 添加 jQuery 但它没有获取 jQuery 的智能感知 它显示一条警告 指出 智能感知无法确定准确的值 完成列表
  • Bash 脚本数组转 csv

    我想从我的数组中执行逗号分隔的字符串 在我的脚本中我收集数据到数组outputArr然后我想echo来检查一下 但现在我被困住了 我想使用以下命令在控制台上打印它 echo outputArr 但我得到了错误的输出 所以我尝试调试它并这样写
  • 如何判断数据库更新是否成功?

    我正在尝试修改一些遗留的ASP经典代码 并且我对ASP了解不多 如何判断数据库插入 更新或删除是否失败 我所说的 失败 是指它要么引发错误 要么影响零行 以下是 ASP 文件中已有的用于设置数据库连接的代码 On Error Resume
  • 外包RSA加密和解密的问题

    我在 RSA 加密和解密方面遇到问题 我正在 android 中开发 想外包 RSA 加密和解密 在我尝试外包之前 我的源代码运行良好 我创建了私钥和公钥 并将其保存为 private key 和 public key 该错误是由该方法引起
  • 如何在 JavaScript 变量中存储多个 jQuery 选择器?

    显然 如果多次使用 jQuery 选择器 将它们存储在变量中是个好主意 not如果只使用一次是个好主意 我的问题是 如何在变量中存储可互换使用的多个选择器 例如 假设我选择 object1 object2 然后我选择 object1 我将如
  • 如何以编程方式更新元素并将其添加到 XSD

    我需要以编程方式更新 java 中的现有 XSD 如下所示
  • group_concat 结果在 IN 条件下不起作用

    有没有可能的方法将 group concat 的结果放入 SQL 查询的 IN 条件中 在网络主表中 我在 IndustryId 列中有逗号分隔的字段 喜欢 userId industryId 123 3831 123 2832 3832
  • 错误:类型 List 的方法 getId() 未定义

    我有一个方法来创建类对象列表 public List
  • Tkinter 将视频插入窗口[重复]

    这个问题在这里已经有答案了 我目前有这段代码用于从 tkinter 程序打开 mp4 文件 import os from tkinter import app Tk app title Video Player Fcanvas Canvas
  • 如何更改菜单栏中子菜单的标签颜色?

    我想使用菜单栏更改子菜单的标签颜色 我正在使用的代码如下
  • 转义 Java RegEx 元字符

    我正在尝试转义 Java 中的 RegExp 元字符 以下是我想要的 INPUT STRING This is test OUTPUT STRING This is test 这就是我目前正在做的事情 但它不起作用 String input
  • 对于每个 Spring websocket 事件,Principal 为 null

    我试图从 Spring websocket SessionConnectEvent 获取主体用户名 但它在每个侦听器上均为空 我可能做错了什么 为了实现它 我遵循了您可以在这里找到的答案 如何使用 Spring 4 捕获 webSocket
  • 尽管浏览器预取/缓存,如何判断文件是否真正下载并保存?

    我正在创建一个脚本来保存下载统计信息 但我只想在文件实际下载时更新统计信息 问题是浏览器 例如 Explorer 9 Chrome 等 会在 保存 打开 对话框仍然打开时自动开始下载文件 这意味着在用户指定保存位置之前 或者资源管理器仍然显