相关疑难解决方法(0)

使用document.location.href保存客户端数据时,如何向浏览器建议文件名?

我正在尝试将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"吗?

javascript html5 canvas

6
推荐指数
1
解决办法
3887
查看次数

为使用 Blob 的 <embed> 或 <iframe> 设置默认另存为名称

我正在使用 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,因此它的最后一部分是我想要的名称,但这对于客户端生成的对象似乎是不可能的。

我尝试过的事情:

  • 通过元数据设置 PDF 标题。这有效但不影响文件名。
  • 操作嵌入标签标题属性。好像什么都没做
  • 更改页面标题。不影响文件。
  • 尝试在数据 url 中附加一些内容。只是阻止显示 PDF。
  • 通过 POST 上传 PDF,然后通过我可以控制 URL 的页面下载它。可以工作,但生成客户端 PDF 只需要将其上传到服务器似乎很疯狂。

有没有办法解决这个问题,以便我可以控制默认/建议的文件名?

html javascript pdf node-pdfkit

6
推荐指数
1
解决办法
1万
查看次数

如何生成一个文件,并提供它在普通的JavaScript下载?

我想动态生成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只有建议.

干杯,乔希

javascript html5 blob download fileapi

5
推荐指数
1
解决办法
6810
查看次数

通过更改带有Safari的window.location来下载文件

我有一个离线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'.有没有办法指定文件名?

javascript safari url

5
推荐指数
1
解决办法
1万
查看次数

Javascript:设置要下载的文件名

我正在使用插件从表生成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)

javascript csv

5
推荐指数
1
解决办法
2万
查看次数

跨浏览器是否可以将文件另存为按钮?

我正在开发一个客户端音乐播放器,我正在寻找一种方法来保存完整的mp3数据播放列表.

localStorage localStorage规则的5mb限制该选项输出.我想知道还有什么其他选择.

DataURIs 我读过有关dataURIs的内容,例如, 在使用数据时,有没有办法指定建议的文件名:URI?跨浏览器另存为.txt 但不建议默认文件名,特别是缺乏IE支持是dealbreakers.

IndexedDB HTML5 indexedDB和持久性生存期表明IndexedDB不是持久存储的选项.

我有缺少的选择吗?希望如此!

谢谢,安德鲁

javascript html5 storage persistent

5
推荐指数
1
解决办法
1899
查看次数

如何设置 blob 数据的下载文件扩展名

在我的网站视频中使用 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)

html javascript video google-chrome blob

5
推荐指数
1
解决办法
2万
查看次数

谷歌可视化数据表到 CSV 下载

在吸取足够长的时间后添加到 Stack Overflow。

我拥有的:

  • 谷歌可视化产品
  • 从数据库或表中读取数据并加载到数据表中。
  • Datatable 用于创建 Google Visualization 图形。
  • 我需要根据数据的当前配​​置加载“下载到 CSV”的按钮或链接。即在所有处理和更改之后,包括控件。

现在我想使用带有文件名的数据表(不幸的是全局)按下 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)

javascript json google-chrome google-visualization

2
推荐指数
1
解决办法
8905
查看次数