javascript - 如何使用 javascript 更新文件
问题描述
情况
我正在尝试构建一些东西以同时从多个镜像下载文件。镜像支持可恢复下载(感谢 http 部分内容等...),因此我能够从不同位置下载所有片段,并且当一切都在这里时,让用户“下载”它,这要归功于众所周知的window.URL.createObjectURL
. 我在那里偷了大部分代码:Handle file download from ajax post
但是通过链接问题的方法,我的项目有两个主要缺点:
- 需要完成下载才能显示下载对话框。
- 所有数据都由浏览器的缓存和内存管理。
问题
有没有办法在下载结束之前(调用之前)显示下载对话框window.URL.createObjectURL
?并稍后在片段到达时更新所选文件。
我正在寻找类似 php's fopen
//的文件更新fseek
。fwrite
我查看了 File API,但没有发现任何关于写入数据的信息。我还考虑使用本地存储,但所有数据都必须在提供下载对话框之前下载。
编辑
我如何看待事物:
我想知道是否有一种方法可以像常规下载一样下载生成的内容:让用户选择下载目标文件,然后才在用户空间 tempfilename 中完成下载...(在 SaveAs 之后移动被包围的框并将其更改为用户空间而不是浏览器空间)
解决方案
允许浏览器编辑用户文件系统上的本地文件将是一个巨大的安全风险,因此它不是一个功能。
可以下载同名文件,然后用户通过操作系统的文件管理器选择是否覆盖旧文件。
NodeJS 具有您正在寻找的功能(在 javascript 中),但它仅适用于服务器
推荐阅读
- python - 如果找不到我要查找的元素,如何处理 BeautifulSoup 中的异常?
- nlp - 使用 en_trf_bertbaseuncased_lg 模型训练 NER SpaCy
- utf-8 - 字母 x 在本网站上未被识别为字母
- git - 在 .gitconfig 中注释行而不是取消设置
- c++ - 获取有关使用未初始化内存的错误代码
- mysql - 没有列顺序的唯一键约束
- django - 如何使用 django 模型制作追随者系统
- java - 到 mysql 服务器的 Java 连接字符串失败
- eclipse - 在 java 中从 Eclipse 执行 Apache Beam WordCount 示例时,参数不以“--”错误开头
- ruby-on-rails - Omniauth-facebook Rails 6:无效的应用程序 ID