JS请求api接受其返回文件

JS请求api接受其返回文件

1.html代码

<input type="file" id="cv">
<button onclick="cv()">提交</button>
<span id="pil" ></span>

1.选择文件 2.点击调用下面的js代码 3.用于产生文件的下载链接

2.js代码

   //js代码
   var data = document.getElementById("cv").files[0];//获得html的input文件
   var formData = new FormData();
   formData.append("file", data);//将文件添加到表单,索引名根据api的要求
   $.ajax({
	   url:'http://49.234.109.53:808/photo',
       dataType:'json',
       type:'POST',
       async: false,
       data: formData,
       reponseType:'arraybuffer',//可忽略
       processData : false, // 使数据不做处理
       contentType : false, // 不要设置Content-Type请求头
       success: function(res){
               
       },
       error:function(res){
    	   
       }
   });
   a=data.name;
   document.getElementById("pil").innerHTML="<a href=\"http://49.234.109.53:1000/cv/"+a+"\">获取水印图</a>";//创建下载链接

1.这里其实是将原api处理的文件结果在后端又做了一个新的下载链接api来返回
2.ajax不具备接受文件流的能力,哪怕api返回成功,ajax依旧会进入error。
3.如果你只是api的使用者而非开发者,使用我另一篇博文 link.的python前端请求代码可以实现文件api的请求,然后将其作为一个新的接口,可以确定下载链接。

3.flask的获取文件代码

ajax使formdata格式但这里用files方法

request.files.get('file')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值