将文件名设置为Blob文件

时间:2018-10-15 09:30:17

标签: javascript fetch

我想将文件名添加到我的Blob文件中,但是我真的不知道如何做,这是我目前的代码:

  onClick() {
    var myHeader = new Headers();

    myHeader.append('Content-Type', 'text/plain');

    fetch(this.props.url, {
      method: 'POST',
      headers: myHeader,
      body: JSON.stringify(this.state.api_arg)
    }).then(response => {
      const filename = getFileName(response.headers.get('Content-Disposition'))

      response.blob().then(myBlob => {
        const fileUrl = URL.createObjectURL(myBlob)

        console.log(fileUrl)
        window.open(fileUrl)
      })
    })
 }

我的文件名存储在一个变量中。

2 个答案:

答案 0 :(得分:0)

const url = URL.createObjectURL(myBlob);
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', filename);
document.body.appendChild(link);
link.click();

答案 1 :(得分:-1)

Niels的答案不完整,要处理blob中的文件名,您必须这样做:

const file = new File([myBlob], filename)