如何将 POST 请求发送到其他服务器绑定文件到 formdata
How can I send the POST request to the other server binding file into formdata
我有一个 pdf 文件,它是用我的服务器端代码生成到我的本地服务器中的。我想向另一台请求 POST
的服务器发送请求。 post 方法将参数作为 FormData 其中 formdata types
one is string
and another is file
type.
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 string==>bytes array==>Blob object==>File object
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
网络服务发送请求。
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;
我有一个 pdf 文件,它是用我的服务器端代码生成到我的本地服务器中的。我想向另一台请求 POST
的服务器发送请求。 post 方法将参数作为 FormData 其中 formdata types
one is
string
and another isfile
type.
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 string==>bytes array==>Blob object==>File object
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
网络服务发送请求。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;