javascript react中下载映像

pb3skfrl  于 2022-11-20  发布在  Java
关注(0)|答案(4)|浏览(221)

我用unsplashAPI来显示照片。当我点击一张照片时,它会以模态显示照片,下面有一个下载按钮。当我点击那个按钮时,它不会下载图片,而是以最大的分辨率显示该标签中的照片。我如何让下载按钮真正下载照片?

<a href={photo.links.download} download>Download</a> //this doesn't work to download the photo
bqucvtff

bqucvtff1#

在每个url href属性的末尾添加?force=true

<a href={photo.links.download + "?force=true"}>Download</a>
w51jfk4q

w51jfk4q2#

我觉得这很管用

const download = e => {
var element = e.target;
var file = new Blob(
  [
    "https://timesofindia.indiatimes.com/thumb/msid-70238371,imgsize-89579,width-400,resizemode-4/70238371.jpg"
  ],
  { type: "image/*" }
);
element.href = URL.createObjectURL(file);
element.download = "image.jpg";
element.click();

};
  return (
    <div className="App">
      <a
        href="https://timesofindia.indiatimes.com/thumb/msid-`70238371,imgsize-89579,width-400,resizemode-4/70238371.jpg"`
        download
        onClick={(e) => download(e)}
      >
        <i className="fa fa-download" />
        download
      </a>
    </div>
  );
k97glaaz

k97glaaz3#

试试这个:

downloadFile = (file) => {

  const blob = new Blob(
    [ file ],
    { type: 'image/jpeg' }
  );
  const href = await URL.createObjectURL(blob);
  const link = document.createElement('a');
  link.href = href;
  link.download = 'your file name' + '.jpeg';
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}
8cdiaqws

8cdiaqws4#

使用react.js中的file-saver包可以很容易地下载图像。

*安装:

npm i file-saver

*语法:

FileSaver.saveAs("https://codemaker2015.github.io/image", "image.jpg");

*用法:

import { saveAs } from 'file-saver'

const App = () => {
    const downloadImage = () => {
        saveAs('image_url', 'image.jpg') // Put your image-url here.
    }

    return <Button onClick={downloadImage}>Download</Button>
}

更多信息请访问:https://www.npmjs.com/package/file-saver

相关问题