[英]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.