拖出要下载的.zip文件
Dragging out a .zip file to download
我正在使用node.js
(使用nw.js
)创建一个.zip
文件,然后将生成的文件的路径发送到前端。我希望用户能够将 HTML 元素从nw.js
窗口拖到他的桌面上,并将其更改为拖放时的.zip
文件(在此处查看具有另一种文件类型的简单示例)。
我知道我可以使用 dataTransfer
属性并将数据类型设置为 application/zip
,但我不知道如何使用此方法发送.zip
文件数据。
React = require "react"
module.exports = React.createClass
onDragStart : ( event ) ->
event.dataTransfer.setData "application/zip:#{@props.path}"
render : ->
<div draggable="true" onDragStart={@onDragStart}>Download</div>
我想我应该为 .zip
文件创建一个流,但我不知道如何。即使在"客户端"端,我也可以访问fs
模块,因此没有限制。关于如何实现这种效果的任何想法?
我想出了如何让它工作的方法。它不起作用,因为我正在尝试下载本地文件,所以我创建了一个临时 HTTP 服务器,该服务器在每个请求时返回 MIME 类型设置为 application/zip
的.zip
文件。然后我只需要将数据传输URL设置为http://localhost:3000
,瞧。
代码如下:
fs = require "fs"
http = require "http"
React = require "react"
module.exports = React.createClass
componentWillMount : ->
index = fs.readFileSync @props.path
server = http.createServer ( request, response ) =>
response.writeHead 200, { "Content-Type" : "application/zip" }
response.end index
server.listen 3000
onRequestDownload : ( event ) ->
event.dataTransfer.setData "DownloadURL", "application/zip:FileName.zip:http://localhost:3000"
render : ->
<div className="view download">
<div className="download-item" draggable="true" onDragStart={@onRequestDownload}>Download</div>
</div>
相关文章:
- 多个mp3下载链接到一个zip文件,用于下载javascript或jquery
- 多个下载链接到一个zip文件,然后再下载javascript
- javascript zip文件夹和客户端机器中的子文件夹
- 我想批量上传zip文件中的简历,并提取html5和angular中每个简历的内容
- 使用Javascript将多个文件下载为zip文件或文件夹
- 使用JavaScript和PHP下载图像文件并返回一个zip文件
- 如何使用JQuery处理zip文件的强制下载
- 使用ajax响应下载一个zip文件
- 使用JavaScript(客户端)提取受密码保护的ZIP文件
- 如果我只想在我的应用程序中使用表单生成器,则 Alloy UI 的 zip 文件中要包含哪些文件夹
- 使用自动脚本从网站检索 zip 文件
- 使用 jsZip 将图像从 url 添加到 zip 文件
- 使用数据 URI 将多个文件下载到 Zip 文件中 Javascript
- 使用 AJAX 将 zip 文件上传到服务器
- 拖出要下载的.zip文件
- 如何在 NodeJs 的内存中下载和解压缩 zip 文件
- 使用 zip.js 通过 Node.js 上的 XMLHTTP/ajax 调用读取 zip 文件
- 强制下载 Ajax 成功时的.mp3或.zip文件
- 使用 javascript 提取并浏览文件夹中.ZIP文件修改时间戳
- 如何使用zip.js将图像文件列表添加到zip文件中