前端/H5/JS:通过URL下载文件并转存到其他服务器(微信),Blob文件转File文件
现在有一个图片URL,在自己服务器上,一个微信提供的媒体文件上传URL,我在前端通过JS实现转存微信服务器
1. http://file.xxx.com/asd.jpg 自己的
2.https://api.weixin.qq.com/cgi-bin 微信
浏览器访问http://file.xxx.com/asd.jpg,看到一个图,并且,请求的 Content-Type:image/jpeg
首先,先把文件以Blob下载下来到内存
PS:也可以提供一个本地路径,来进行下载到nodejs/浏览器管理的内存中
getBlob(url, callback) {
var xhr = new XMLHttpRequest()
xhr.open('GET', url)
xhr.responseType = 'blob'
xhr.onload = () => {
console.log(xhr.response)
}
xhr.send()
}
console打印如下:
Blob {size: 5523, type: "image/jpeg"}

然后,把Blob转File
const blob = xhr.response
const files = new window.File([blob], `abc.${blob.type.split('/')[1]}`, { type: blob.type })
打印File如下

接着,用Form包裹,
const formData = new FormData()
formData.append('media', files)
最后,把formData放到POST的body,调用上传即可
前端/H5/JS:通过URL下载文件并转存到其他服务器(微信),Blob文件转File文件的更多相关文章
- 上传文件到Ubuntu阿里云服务器(windows到Linux的文件上传)
上传文件到Ubuntu阿里云服务器(windows到Linux的文件上传) 最近在阿里云上面租了一个轻量级服务器玩玩,学习学习怎么在服务器部署网站.然后嘞,在想要将本地文件上传到服务器的时候,自己研究 ...
- js 根据url 下载图片 前端js 实现文件下载
1.H5 download属性 function downFile(content, filename) { // 创建隐藏的可下载链接 var eleLink = document.createEl ...
- js 根据url 下载图片
downloadIamge(imgsrc, name) {//下载图片地址和图片名 let image = new Image(); // 解决跨域 Canvas 污染问题 image.setAttr ...
- js通过 URL下载文件
页面上一个button,点击之后触发一个function去请求数据,返回 pdf/epub 的URL,然后下载这个文件. 本来是直接用 a 写的,href里放资源地址,target设为'_blank' ...
- JS 根据url 下载
一. window.location="htpp://www.baidu.com/test.rar"; 二. var $form = $('<form method=&quo ...
- 上传文件到阿里云linux服务器(windows到Linux的文件上传)
在"运行"中输入cmd,打开控制台,切换到刚才Putty的安装目录下,我的是E:\Putty,然后输入pscp命令,我们需要这个命令来实现文件的上传.如下命令格式: F:\PuTT ...
- File 文件操作类 大全
File 文件操作类 大全 许多人都会对文件操作感到很难 我也是 但是一个好的项目中必定会涉及到文件操作的 文件的复制 粘贴 等等等 公司大佬写了 一个文件操作的工具类 感觉还是棒棒的啦 ...
- HTML5 文件域+FileReader 读取文件并上传到服务器(三)
一.读取文件为blob并上传到服务器 HTML <div class="container"> <!--读取要上传的文件--> <input type ...
- 前端通过url下载文件方法
前端通过url下载文件方法 产生背景 浏览器通过url下载文件,当浏览器识别出资深能播放的资源文件,就不会走下载流程,会直接打开 解决方法 1.让后台转成请求的方式,输出文件流(如果想实现批量下载-因 ...
随机推荐
- 基于 Docker 实现 DevOps 的一些探索
DevOps 介绍 DevOps(Deveplopment 和 Operations 的简称),中译为开发运维一体化,可定义为是一种过程.方法.文化.运动或实践,主要是为了通过一条高度自动化的流水线来 ...
- 【RS】A review on deep learning for recommender systems: challenges and remedies- 推荐系统深度学习研究综述:挑战和补救措施
[论文标题]A review on deep learning for recommender systems: challenges and remedies (Artificial Intell ...
- mysql操作(精简版)
一.数据库操作(建库.删库) 1.查看数据库:show databases; 2.创建数据库:DROP DATABASE 数据库名; 3.删除数据库:CREATE DATABASE 数据库名; 4.使 ...
- loonflow 工单系统
该项目是基于django的工作流引擎,工单.项目托管在 Github 一.安装基础环境 1.1 安装python 和 pip yum install -y epel-release yum insta ...
- 到底如何选择PHP框架?Yii、ThinkPHP、laravel、CI.
如果你是为了工作和就业,你应该选择框架以工作为目标,看公司里面未来招聘中用的最多的是什么框架.很简单的判断方式 很多朋友都不知道如何去选择框架,选择框架的时候就会很纠结.到底该学什么框架,选择什么框架 ...
- linux下c++如何输入不回显
#include <stdio.h> #include <termios.h> #include <unistd.h> #include <iostream& ...
- 《 .NET并发编程实战》阅读指南 - 第14章
先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.
- 【java】Java多线程总结之线程安全队列Queue【转载】
原文地址:https://www.cnblogs.com/java-jun-world2099/articles/10165949.html ============================= ...
- file 从InputStream读取byte[]示例
file 从InputStream读取byte[]示例 分类专栏: java基础 public static byte[] getStreamBytes(InputStream is) throw ...
- vue基础之data
使用 调用data onLoad(option) { _self = this; _self.$data.xxxx = "te"; } 绑定节点 元素~~~~ <input ...