我正在尝试将HTML5画布导出为PNG文件,以便将其存储在用户的计算机上.
以下代码段正确保存图像.
document.location.href = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
Run Code Online (Sandbox Code Playgroud)
但是,在Mac OS X上使用Chrome时,它始终保存为"下载".在Safari中,它被称为"未知".Firefox给它一个gobbledygook名称.
我可以向浏览器建议使用的名称,例如"exportedImage.png"吗?
我正在使用 PDFKit(无节点)在浏览器中生成 PDF,并通过 src 属性将其显示为 iframe 或嵌入标签。生成的 blob URL 是某种 UUID。所以整个页面看起来像:
<embed src="blob:http://localhost/eeaabb..."/>
Run Code Online (Sandbox Code Playgroud)
PDF 看起来不错,但是当我在 Chrome 中单击下载链接时,默认文件名是 UUID。在 FireFox 中,它只是“document.pdf”。
如果这是服务器生成的 PDF,我将使用 Content-Disposition 和/或操作 URL,因此它的最后一部分是我想要的名称,但这对于客户端生成的对象似乎是不可能的。
我尝试过的事情:
有没有办法解决这个问题,以便我可以控制默认/建议的文件名?
我想动态生成javascript文本文件,然后提供下载.目前,我可以通过以下任一解决方案获得此工作:
content = "abc123";
document.location = "data:text/octet-stream," + encodeURIComponent(content);
Run Code Online (Sandbox Code Playgroud)
要么
content = "abc123";
var bb = new BlobBuilder();
bb.append(content);
var blob = bb.getBlob();
blob = blob.slice(0, blob.size, 'text/octet-stream');
var fr = new FileReader();
fr.onload = function() {document.location = this.result;}
fr.readAsDataURL(blob);
Run Code Online (Sandbox Code Playgroud)
但是,当下载框出现时,这两种解决方案只会在另存为对话框中提供默认文件名"下载".
我的问题基本上是,如何将其更改为特定的文件名,例如'readme.txt'或'scene.obj'
另请注意,数据类型以前是"text/plain",但是如果使用此文档,则文档会切换到新的文本文档,而不是提供下载(如text/octet-stream似乎那样).
我不想要一个flash解决方案,javascript/html5只有建议.
干杯,乔希
我有一个离线html文件,通过将window.location设置为生成并保存CSV
data:text/csv;base64,Intfa2V5fSIsInt...
Run Code Online (Sandbox Code Playgroud)
但是,在Safari中,这只会在浏览器中显示CSV.
将网址设置为:
data:application/csv;base64,Intfa2V5fSIsInt...
Run Code Online (Sandbox Code Playgroud)
强制Safari下载文件 - 但它获得的通用文件名只是'Unknown-3'.有没有办法指定文件名?
我正在使用插件从表生成csv文件,文件正在下载带有"下载"文件名,如何更改文件名,例如dowload.csv
var csv = $("#table").table2CSV({delivery:'download'});
window.location.href = 'data:text/csv;charset=UTF-8,'+ encodeURIComponent(csv);
Run Code Online (Sandbox Code Playgroud) 我正在开发一个客户端音乐播放器,我正在寻找一种方法来保存完整的mp3数据播放列表.
localStorage localStorage规则的5mb限制该选项输出.我想知道还有什么其他选择.
DataURIs 我读过有关dataURIs的内容,例如, 在使用数据时,有没有办法指定建议的文件名:URI? 和跨浏览器另存为.txt 但不建议默认文件名,特别是缺乏IE支持是dealbreakers.
IndexedDB HTML5 indexedDB和持久性生存期表明IndexedDB不是持久存储的选项.
我有缺少的选择吗?希望如此!
谢谢,安德鲁
在我的网站视频中使用 blob 数据,下载视频时,保存的文件名是 Chrome 浏览器中带有.txt( 4671addc-3ce0-4eb6-b414-ddf3406b1fe5.txt) 扩展名的 blob 名称,而在 firefox 中是带有.mp4( 4671addc-3ce0-4eb6-b414-ddf3406b1fe5.mp4) 扩展名的 blob 名称。
如何指定下载文件扩展名和文件名。
我尝试用下面的代码设置它,但没有任何效果。
type="video/mp4"
filename="111.mp4"
download="111.mp4"
Run Code Online (Sandbox Code Playgroud)
这是我现在使用的示例代码。
<video
width="300px"
id="video"
type="video/mp4"
filename="111.mp4"
download="111.mp4"
controls=""
src="blob:http://localhost/4671addc-3ce0-4eb6-b414-ddf3406b1fe5">
</video>
Run Code Online (Sandbox Code Playgroud) 在吸取足够长的时间后添加到 Stack Overflow。
我拥有的:
现在我想使用带有文件名的数据表(不幸的是全局)按下 downloadCSV javascript 函数。我已经从线程的一个答案中获取了下载代码...在使用数据 uri 时,有什么方法可以指定建议的文件名
我希望人们觉得这很有帮助。
掠夺
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
// Initial Part extracted from [Visualization: Area Chart][2]
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
var data;
function drawChart() {
data = google.visualization.arrayToDataTable([
['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460],
['2006', 660, 1120],
['2007', 1030, 540]
]);
var options = {
title: 'Company Performance',
hAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
};
var …Run Code Online (Sandbox Code Playgroud)