Javascript下载文件强制提示目的地

     2023-05-07     15

关键词:

【中文标题】Javascript下载文件强制提示目的地【英文标题】:Javascript download file force prompt destination 【发布时间】:2016-02-08 10:07:01 【问题描述】:

我正在通过 javascript 下载一个文件(该文件是在服务器上生成的),我想强制浏览器提示用户选择文件的目的地。是否可以?例如,Chrome 作为带有默认文件夹的选项,我希望能够覆盖该选项

编辑(解释重复的问题) 我认为它不是重复的,因为我知道为什么对话框没有打开,只是想问一下是否可以覆盖该行为

【问题讨论】:

Prompting user to save file using a 'Save-as' dialog?的可能重复 【参考方案1】:

您不能覆盖下载行为。许多现代浏览器在不提示用户的情况下将任何下载保存到默认位置。这就是他们下载文件的方式,期间。你不能覆盖它。是否需要提示是用户在浏览器首选项中的选择。

【讨论】:

【参考方案2】:

是的,可以使用文件系统访问 API 覆盖该行为。 API 公开了一些将覆盖浏览器行为的方法。 只需在 Chrome 浏览器控制台中运行 window.showOpenFilePicker() 即可启动文件选择器提示。

要覆盖下载目标提示行为,您可以使用window.showSaveFilePicker() 方法。

// ...
const blob = new Blob(/*...*/);
// Use File System Access API
saveFileToDisk(blob, 'Some-File.txt')

async saveFileToDisk(blob, fileName)
      try 
        const fileHandle = await self.showSaveFilePicker(
          suggestedName: fileName,
          types: [
            
              description: "File",
              // ...
            ,
          ],
        );
        const writeFile = async (fileHandle, contents) => 
          // Create a FileSystemWritableFileStream to write to.
          const writable = await fileHandle.createWritable();
          // Write the contents of the file to the stream.
          await writable.write(contents);
          // Close the file and write the contents to disk.
          await writable.close();
        ;
        // write file
        writeFile(fileHandle, blob).then(() => console.log("FILE DOWNLOADED!!!"));
       catch (error) 
        console.log(error);
      

有关详细信息,请查看文档 https://web.dev/file-system-access/ 和 https://web.dev/browser-fs-access/

【讨论】:

截至 2021 年 12 月下旬,showSaveFilePicker 仅在 Chrome、Edge 和 Opera 上受支持,并且仅在使用 HTTPS 时才受支持。 developer.mozilla.org/en-US/docs/Web/API/Window/…

使用“另存为”提示强制下载文件

Ifyouwanttoforcesomeonetodownloadafileinsteadofopeningitintheirbrowser,usethiscode.AddTypeapplication/octet-stream.doc.mov.avi.pdf.xls.mp4 查看详情

有啥方法可以“模拟”右键单击另存为命令或使用 JavaScript 在浏览器中强制下载文件?

】有啥方法可以“模拟”右键单击另存为命令或使用JavaScript在浏览器中强制下载文件?【英文标题】:Isthereanywayto\'simulate\'right-clicksave-ascommandorforcedownloadoffileinthebrowserwithJavaScript?有什么方法可以“模拟”右键单击另存为命令或... 查看详情

强制下载在 JavaScript 中使用 FileWriter 创建的 blob [重复]

】强制下载在JavaScript中使用FileWriter创建的blob[重复]【英文标题】:ForcedownloadforblobcreatedwithFileWriterinJavaScript[duplicate]【发布时间】:2011-05-2723:27:16【问题描述】:HTML5引入了FileWriter类。通过这个类,您可以制作Blob。(文件是Blob... 查看详情

javascript使用javascript强制下载(代码片段)

查看详情

强制下载生成的 HTML

】强制下载生成的HTML【英文标题】:ForceDownloadofgeneratedHTML【发布时间】:2017-09-0301:16:31【问题描述】:我正在创建一个WordPress插件,它会在按下按钮时生成HTML页面。这样可行;尽管代码位于WP插件中,但该问题与WordPress无关。下... 查看详情

javascript强制下载#jquery(代码片段)

查看详情

需要在 Chrome、FireFox 中提示 RDP 文件下载

】需要在Chrome、FireFox中提示RDP文件下载【英文标题】:NeedtopromptRDPfiledownloadinChrome,FireFox【发布时间】:2013-01-0500:02:59【问题描述】:我们的网站上有一个RDP链接,该链接在IE中运行良好(提示用户下载)。但是,如果用户尝试... 查看详情

在 Javascript 中导入 xlsx 文件时如何手动强制 javascript 事件?

】在Javascript中导入xlsx文件时如何手动强制javascript事件?【英文标题】:HowcanIforcejavascripteventmanuallywhileimportingthexlsxfileinJavascript?【发布时间】:2016-05-0314:13:02【问题描述】:我正在使用下面的代码sn-p在Javascript中导入xlsx文件。... 查看详情

如何强制客户端刷新 JavaScript 文件?

】如何强制客户端刷新JavaScript文件?【英文标题】:HowcanIforceclientstorefreshJavaScriptfiles?【发布时间】:2010-09-0703:21:59【问题描述】:我们目前处于私人测试阶段,因此仍在进行相当快速的更改,尽管显然随着使用量开始增加,我... 查看详情

使用 JavaScript 提供下载

】使用JavaScript提供下载【英文标题】:MakeavailableasdownloadwithJavaScript【发布时间】:2010-09-2503:32:26【问题描述】:我在JavaScript中创建了一个文件。现在我希望能够将其作为下载提供给用户,这可能吗?确切地说,它是我创建的一... 查看详情

通过javascript加载慢速外部文件时,有啥方法可以优雅地强制执行超时限制?

】通过javascript加载慢速外部文件时,有啥方法可以优雅地强制执行超时限制?【英文标题】:Anywaytogracefullyenforceatimeoutlimitwhenloadingaslowexternalfileviajavascript?通过javascript加载慢速外部文件时,有什么方法可以优雅地强制执行超时... 查看详情

强制javascript重新评估信号?

】强制javascript重新评估信号?【英文标题】:Forcejavascripttoreevaluateonsignals?【发布时间】:2013-01-0715:23:03【问题描述】:所以我有以下情况:QML文件:import"Script.js"asMyScriptSomeItemsource:MyScript.getSourceJavaScript文件(Script.js):functiong... 查看详情

如何强制浏览器重新加载缓存的 CSS 和 JavaScript 文件

】如何强制浏览器重新加载缓存的CSS和JavaScript文件【英文标题】:HowtoforcethebrowsertoreloadcachedCSSandJavaScriptfiles【发布时间】:2010-09-1205:51:56【问题描述】:我注意到一些浏览器(特别是Firefox和Opera)非常热衷于使用.css和.js文件的... 查看详情

结队项目

...有新版本需要更新。该项目实现的就是这个功能。并且有强制更新和更新提示两种方式,点击强制更新和更新提示都会有提示框跳出。项目目的:用于软件的更新界面截图: 查看详情

如何强制 MyEclipse 将 JavaScript 文件热部署到我的 JBoss 实例?

】如何强制MyEclipse将JavaScript文件热部署到我的JBoss实例?【英文标题】:HowdoIforceMyEclipsetohot-deployaJavaScriptfiletomyJBossinstance?【发布时间】:2011-03-0412:31:13【问题描述】:MyEclipse7.1.1将文件热部署到我的JBoss4服务器时遇到问题。问... 查看详情

iOS webview:提示用户仅使用 JavaScript 下载图像

】iOSwebview:提示用户仅使用JavaScript下载图像【英文标题】:iOSwebview:PromptanusertodownloadimageusingonlyJavaScript【发布时间】:2011-05-1619:04:04【问题描述】:我正在尝试让iPhone用户使用画布进行绘制,然后提供下载作品的链接。我可以... 查看详情

php强制下载文件(代码片段)

查看详情

php强制下载文件(代码片段)

查看详情