相关疑难解决方法(0)

有没有办法在使用数据时指定建议的文件名:URI?

例如,如果您点击链接:

data:application/octet-stream;base64,SGVsbG8=

浏览器将提示您下载一个文件,该文件由超链接本身中作为base64保存的数据组成.有没有办法在标记中建议默认名称?如果没有,是否有JavaScript解决方案?

html javascript url save-as data-uri

216
推荐指数
10
解决办法
16万
查看次数

如何使用object标签为base64渲染pdf设置文件名?

那么我使用以下代码来呈现从webservice作为base64字符串返回的PDF.

<html>
  <object data="data:application/pdf;base64,{!pdfStampingResponse.pdfBase64}" type="application/pdf" width="100%" class="internal">
    <param name="view" value="fitH" />            
  </object>
</html>
Run Code Online (Sandbox Code Playgroud)

这很好但我想在用户尝试保存文件时设置下载文件名.不知何故,我无法找到一个有效的解决方案.知道怎么做吗?

html pdf html5 base64

21
推荐指数
1
解决办法
9544
查看次数

我可以设置Chrome中显示的PDF对象的文件名吗?

在我的Vue应用程序中,我收到PDF作为blob,并希望使用浏览器的PDF查看器显示它.

我将其转换为文件,并生成一个对象url:

const blobFile = new File([blob], `my-file-name.pdf`, { type: 'application/pdf' })
this.invoiceUrl = window.URL.createObjectURL(blobFile)
Run Code Online (Sandbox Code Playgroud)

然后我通过将该URL设置为data对象元素的属性来显示它.

<object
  :data="invoiceUrl"
  type="application/pdf"
  width="100%"
  style="height: 100vh;">
</object>
Run Code Online (Sandbox Code Playgroud)

然后,浏览器使用PDF查看器显示PDF.但是,在Chrome中,我没有使用我提供的文件名(此处为my-file-name.pdf):我在PDF查看器的标题栏中看到一个哈希值,当我使用"右键单击"下载文件时- >另存为...'或查看器的控件,它使用blob的哈希(cda675a6-10af-42f3-aa68-8795aa8c377d或类似)保存文件.

浏览器和文件名的工作方式与我在Firefox中所希望的一样; 它只是不使用文件名的Chrome.

有没有办法,使用原生Javascript(包括ES6,但没有Vue以外没有第三方依赖),为Chrome中的blob/object元素设置文件名?

[edit]如果有帮助,则响应具有以下相关标头:

Content-Type: application/pdf; charset=utf-8
Transfer-Encoding: chunked
Content-Disposition: attachment; filename*=utf-8''Invoice%2016246.pdf;
Content-Description: File Transfer
Content-Encoding: gzip
Run Code Online (Sandbox Code Playgroud)

javascript pdf google-chrome blob ecmascript-6

11
推荐指数
2
解决办法
4197
查看次数

URL.createObjectURL(blob):如何为动态生成的.pdf提供“有意义的文件名”?

我正在调用Web服务以生成.pdf,然后使用createObjectURL和iframe进行打印和显示:

    var title = "Claim-" + this.claimNumber + "-" + new Date() + ".pdf";
    var blob = new Blob([wsRequest.response], { type: 'application/pdf' });
    blob.name = title;
    if (browser() === 'IE') {
        window.navigator.msSaveOrOpenBlob(blob, title);
    } else {
        var fileURL = URL.createObjectURL(blob);
        var win = window.open();
        win.document.write('<iframe name="' + title + '" src="' + fileURL + '" frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;" allowfullscreen></iframe>');
        win.document.title = title;
Run Code Online (Sandbox Code Playgroud)

对于IE来说,它的工作原理非常好:.pdf出现在Acrobat Reader中,它可以显示,我可以打印...并且它的文件名“有意义”。

对于Chrome /嵌入式.pdf查看器,它也可以正常运行:它显示在自己的标签中,并且该标签具有“有意义的文件名”。

但是,如果Chrome在Acrobat Reader中显示图像,请执行以下操作:

a)我得到一个新的空白标签(带有“有意义的名称”)

b)Acrobat显示一个GUID-由createObjectURL()分配的GUID:

示例:“ blob:http//192.168.116.170 …

javascript iframe html5

8
推荐指数
1
解决办法
7357
查看次数

如何使用JavaScript写入文件(用户目录)?

我想使用html5和javascript或jquery从chrome(所有版本)写入任何文件的txt.

我尝试过FileSystem API,我试过的代码是:

function onFs(fs) {
 console.log('test');
  fs.root.getFile('log.txt', {create: true, exclusive: true},
      function(fileEntry) {
        // fileEntry.isFile === true
        // fileEntry.name == 'log.txt'
        // fileEntry.fullPath == '/log.txt'

        fileEntry.getMetaData(function(md) {
          console.log(md.modificationTime.toDateString());
        }, onError);

      },
      onError
  );
}

window.webkitRequestFileSystem(TEMPORARY, 1024*1024 /*1MB*/, onFs);

但不行.

有没有办法写入文件?

javascript jquery html5

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

Blob二进制数据存储在哪里?

特定

var data = new Array(1000000);
for (var i = 0; i < data.length; i++) {
  data[i] = 1;
}
var blob = new Blob([data]);
Run Code Online (Sandbox Code Playgroud)

哪个是存储的数组的二进制数据表示?

javascript blob

6
推荐指数
4
解决办法
3880
查看次数

Javascript 在 PDF URL 中显示文件名而不是 blob 名称

我可以在新窗口中获取 pdf,其 URL 为

htts://mydomainname/410-8d9c-4883-86c5-d76c50a24a1d
Run Code Online (Sandbox Code Playgroud)

我想删除生成的 URL 中自动生成的 blob 名称 (410-8d9c-4883-86c5-d76c50a24a1d) 并将我的自定义名称链接放在下面

htts://mydomainname/filename
Run Code Online (Sandbox Code Playgroud)

我需要对下面的代码进行哪些修改

var file = new Blob([response], {type: 'application/pdf'});                     
var fileURL = URL.createObjectURL(file);                                                                                                    
$window.open(fileURL);
Run Code Online (Sandbox Code Playgroud)

javascript

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

用户保存 HTML5 音频时如何控制文件名?

在我的博客上,可以收听广播频道,可以是现场直播,也可以是按时间表收听频道存档中的先前广播。

我希望访问者能够使用其独特的节目名称保存这些较旧的广播。当访问者单击给定的时间戳时,适当的或适当参数化的 URL 将加载到 HTML5 音频对象的源中。

有两种 URL 格式,第一种仅适用于当天:http://example.com/20190707080000/20190707090000/channel1.mp3
在这种情况下,我可以利用以下 hack:而不是最新的 URL,我将以下 URL 加载到音频播放器中:http://example.com/20190707080000/20190707090000/channel1.mp3/Title_of_the_programme.mp3

在这种情况下,访问者将能够通过给定的文件名保存收听的节目:“Title_of_the_programme.mp3”。

其他日子的其他 URL 与当天不同,因为这些节目已经存档,可能采用较低的比特率和/或格式: http: //example.com/2019/07/06/channe11。 mp4?start=28800&end=32400 “start”和“end”参数适用于一天中给定的第二秒,即实际程序开始和结束的时间。

在第二种情况下,上述黑客不再起作用,因此我无法将类似的 URL 加载到 HTML5 音频播放器中: http://example.com/2019/07/06/channel1.mp4 ?start=28800&end =32400/节目标题.mp4

不幸的是,它不起作用,当我单击 HTML5 音频播放器的“另存为”按钮时,文件名始终是“channel1.mp4”,这是次优的。

在这两种情况下,针对 GET 请求都会立即提供完整的程序。

由于浏览器的同源策略,HTML“A”元素的“download”属性、“a[download]”或 HTML5“audio”元素的相同属性也不起作用:无线电的域是当然与我的博客域不同。

由于同源策略,使用 Ajax 调用 (XMLhttprequest) 将生成的媒体文件提取到浏览器 blob 中也不起作用。无线电服务器当然不会为这些 Ajax 调用提供适当的标头字段:“Access-Control-Allow-Origin: *”。

广播节目 URL 的响应标头不包含“content-disposition”标头字段,因此文件名必须由 URL 本身确定。

html javascript audio ajax blob

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

下载使用 Chrome PDF 查看器打开的 PDF 时设置默认文件名

我的 angular 应用程序有一个呈现 PDF 的 iframe:

<iframe ng-src="{{PCtrl.docSrc}}" type="application/pdf" ...></iframe>
Run Code Online (Sandbox Code Playgroud)

docSrc 生成为 BASE64 编码的字符串,类似于:

"data:application/pdf;base64,JVBERi0xLjMKMyA..."
Run Code Online (Sandbox Code Playgroud)

Chrome 可以很好地呈现嵌入的 PDF。可以单击下载来下载 PDF,用户将看到一个“另存为”对话框。Chrome PDF 查看器给出的默认文件名是“download.pdf”,我该如何更改?

html pdf iframe google-chrome jspdf

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

标签 统计

javascript ×7

html ×4

blob ×3

html5 ×3

pdf ×3

google-chrome ×2

iframe ×2

ajax ×1

audio ×1

base64 ×1

data-uri ×1

ecmascript-6 ×1

jquery ×1

jspdf ×1

save-as ×1

url ×1