我是将数据发送到API的新手。我必须使用AJAX和curl将输入文本数据发送到API,但是这次我必须以特定格式以字节数组发送图像文件。
第1步:使用多部分表单数据方法一一上传所有文件
上传文件API URL:https://sajaya.ae/himmah/Apicalls/uploadfile
标题:
类型:POST
连接类型:保持活动状态
编码类型:multipart / form-data
内容类型:“ multipart / form-data; boundary = -----------”
<form action='' method='post' enctype='multipart/form-data' >
<p><input type='file' name='member_photo_name' id="member_photo_name"/></p>
<p><input type="button" id="SaveAccount" value='Upload'/></p>
</form>
这是我的jQuery
$(document).ready(function () {
$('body').on('click', '#SaveAccount', function (evt) {
evt.preventDefault();
var data = new FormData(this.form);
$.ajax({
url: 'curl.php',
type: "POST",
data: data,
mimeType: "multipart/form-data",
contentType: false,
processData: false,
cache: false,
dataType: "html",
success: function (response) {
alert(response);
}
});
});
});
这是我的卷发
if (isset($_FILES["member_photo_name"]) && $_FILES["member_photo_name"]["error"] == 0) {
print_r($_FILES['member_photo_name']);
$data = $_FILES['member_photo_name'];
$filename = $_FILES['member_photo_name']['name'];
$filesize = $_FILES['member_photo_name']['size'];
$headers = array("Content-type: 'multipart/form-data;boundary= -----------'","Encoding Type: multipart/form-data", "Connection Type: Keep Alive");
$postfields = array("filename" => "@$filename", "filename" => $filename);
$ch = curl_init();
$options = array(
CURLOPT_URL => "https://sajaya.ae/himmah/Apicalls/uploadfile",
CURLOPT_HEADER => true,
CURLOPT_POST => 1,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $postfields,
CURLOPT_INFILESIZE => $filesize,
CURLOPT_RETURNTRANSFER => true
); // cURL options
curl_setopt_array($ch, $options);
curl_exec($ch);
if(!curl_errno($ch))
{
$info = curl_getinfo($ch);
if ($info['http_code'] == 200) {
echo "hello world";
return "hello world";
}
}
else
{
$errmsg = curl_error($ch);
}
curl_close($ch);
}
这是API希望发送我的文件的方式。
[files] => Array
(
[uploaded_file_] => Array
(
[name] => IMG_0462.JPG
[type] => image/jpg
[tmp_name] => /tmp/phpRTFpeW
[error] => 0
[size] => 238761
)
)
编辑:我现在在print_r上更新了我的curl函数,它返回了我想要的格式或API想要的格式,但是现在让我陷入困境的是什么。他们也希望在curl的标头中也没有什么内容。
标题: 类型:POST 连接类型:保持活动 编码类型:多部分/表单数据 内容类型:“ multipart / form-data; boundary = -----------” Uploaded_file_:
我尝试了很少,但是没有成功,API尚未返回成功,
http://sajaya.ae/himmah/app/webroot/img/user_upload/,这是查找图像是否上传的测试路径,
在哪里可以在卷发中添加标题以使其成功