input file 能够上传远程 url 文件吗?

geekape1月前0

正常情况下,我们使用 input 标签都是上传本地文件如:

<input id="file" type="file" multiple />
document.querySelector('input[type="file"]').addEventListener('change', function (e) {    for (const item of this.files) {            upload(item)    }})

那么问题来了,有个远程的 mp3 文件,它的地址是 https://bafybeibfo53sxuztzh47ilsupgyxxj4a2gf7vbszovyllajagvetewytna.ipfs.dweb.link/test.mp3 ,怎么上传到服务器呢?

尝试了一些方法,一直不成功,还望知道的大神解惑

最新回复 (13)
  • summerwar1月前
    引用2
    直接 input 一个文本框,然后把网址传到后台,在服务器上下载就是了
  • renmu1231月前
    引用3
    先请求文件后保存为 blob 或者 file 然后再传上去。
    我也不知道实际是否可行,你可以尝试一下
  • 楼主geekape1月前
    引用4
    @summerwar 文件有很多,服务端最好不要下载下来,直接存到第三方音乐平台
  • 楼主geekape1月前
    引用5
    @renmu123 本地要下载下来,再上传吗
  • Juszoe1月前
    引用6
    2 楼方法没问题,前端下载存成 blob ,再上传第三方平台
  • Juszoe1月前
    引用7
    可能会遇到跨域问题
  • DOLLOR1月前
    引用8
    前端提交个 URL 文本,让服务器自己下载,或者前端先下载再上传。
    无论如何肯定都要涉及传输。
  • ferock1月前
    引用9
    @geekape #3
    所以,你的意思是,让第三方音乐平台自己下载?
  • westoy1月前
    引用10
    跨域问题不行的吧, 就是不知道能不能通过本地播放+canvas+Wasm 重编码去做......
    服务端一般也处理不完美, 因为这种东西很少有不做防盗链的, 认证的那个 key 不同 cookie 、ip 都不一样的。 这个你可能得根据特征定制匹配方案。
    完美的通用解决方案就是让用户下载再上传
  • 楼主geekape1月前
    引用11
    已经解决了各位
  • 楼主geekape1月前
    引用12
    采用 2 楼的方法可以
  • 楼主geekape1月前
    引用13
    @ferock 我是本地下载转 blob ,再上传,不过很慢
  • walker7481月前
    引用14
    慢的话,做切片上传吧。
  • 游客
    15
返回