[英]how do i send FormData to the node server from React js axios post request?
[英]How can I send the POST request to the other server binding file into formdata
我有一个使用我的服务器端代码生成到我的本地服务器中的pdf文件。 我想向另一个服务器发送请求POST
。 post方法采用参数作为FormData ,其中formdata类型
一个是
string
,另一个是file
类型。
content-type
form-data
Body
PDF file (file type)
string value
是否可以在不浏览文件位置的情况下发出POST
请求?
进行一些研发工作我已经通过一些步骤解决了这个问题,因为除了出于安全原因浏览之外,没有其他方法可以从客户端的物理位置自动获取文件对象(基本上是在js中)。
REST
服务。 哪个响应所需文件的base64 string
。 比起我从javaScript
调用REST api
,作为响应,我收到了base64 string
。 然后我将其转换为bytes array
, Blob
对象和File
对象。
base64字符串==>字节数组==> Blob对象==>文件对象
var base64 = this.getpdfFromLocal() //get the base64 string var byteArray= this.base64ToByte(base64 ); var file = this.getFileFromByteArray(byteArray); //return the byte array form the base64 string MyApi.prototype.base64ToByte= function(base64) { var binaryString = window.atob(base64); var binaryLen = binaryString.length; var bytes = new Uint8Array(binaryLen); for (var i = 0; i < binaryLen; i++) { var ascii = binaryString.charCodeAt(i); bytes[i] = ascii; } return bytes; }; MyApi.prototype.getFileFromByteArray=function(byteArray) { var blob = new Blob([byteArray]); var file = new File([blob], "resource.pdf"); return file; };
最后,我使用文件对象from data
,并向另一个服务器REST
Web服务发送请求。
var formdata = new FormData(); formdata.append("some_value", "Some String"); formdata.append("file", file); var url = "http://yoururl.com"; var result =$.ajax({ url : url , type : 'POST', data : formdata, contentType : false, cache : false, processData : false, scriptCharset : 'utf-8', async : false }).responseText;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.