
正常情况下,我们使用 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 ,怎么上传到服务器呢?
尝试了一些方法,一直不成功,还望知道的大神解惑
1 summerwar 2022-06-18 10:47:42 +08:00 直接 input 一个文本框,然后把网址传到后台,在服务器上下载就是了 |
2 renmu123 2022-06-18 10:51:23 +08:00 via Android 先请求文件后保存为 blob 或者 file 然后再传上去。 我也不知道实际是否可行,你可以尝试一下 |
5 Juszoe 2022-06-18 11:12:34 +08:00 2 楼方法没问题,前端下载存成 blob ,再上传第三方平台 |
6 Juszoe 2022-06-18 11:14:50 +08:00 可能会遇到跨域问题 |
7 AV1 2022-06-18 12:01:01 +08:00 前端提交个 URL 文本,让服务器自己下载,或者前端先下载再上传。 无论如何肯定都要涉及传输。 |
9 westoy 2022-06-18 12:05:11 +08:00 跨域问题不行的吧, 就是不知道能不能通过本地播放+canvas+Wasm 重编码去做...... 服务端一般也处理不完美, 因为这种东西很少有不做防盗链的, 认证的那个 key 不同 cookie 、ip 都不一样的。 这个你可能得根据特征定制匹配方案。 完美的通用解决方案就是让用户下载再上传 |
10 geekape OP 已经解决了各位 |
11 geekape OP 采用 2 楼的方法可以 |
13 walker748 2022-06-18 18:05:45 +08:00 慢的话,做切片上传吧。 |