Download blob(file) by url, and save it.

Usage no npm install needed!

<script type="module">
  import saveFileByUrl from '';



在浏览器中通过 url 下载文件。 Download file by url in browser. Live Demo


  • 浏览器会尽可能直接预览(见 Demo),而不是保存到本地。 The browser will preview it as directly as possible (see Demo), rather than saving it locally.
  • 原生 a 标签跨域下载时不支持重命名。 Native a tag do not support renaming when crossing origin.
  • 点击的元素不是 a 标签。 The click eventTarget is not an a tag.
  • 下载逻辑并不是由用户点击事件触发的,需要在业务逻辑中处理。 The download logic is not triggered by user click events and needs to be handled in the business logic.
  • a 标签会闪烁一下 There will be a flash when using an a tag.


yarn add save-file-by-url
import saveFileByUrl from 'save-file-by-url';



 * @description Create an a element and click it.
export declare function downloadByUrlLegacy(url: string, filename?: string): void;
 * @description Download blob by javascript.
export declare function getBlobByUrl(url: string | URL, detectFileName?: boolean): Promise<{
    blob: Blob;
    filename: string;
 * @description Save blob to local.
export declare function saveBlob(blob: Blob, filename: string): void;
 * @description Download blob(file) by url, and save it.
export default function downloadByUrl(url: string | URL, filename?: string): Promise<void>;