将图像发送到字节数组中的API。

时间:2019-07-19 05:43:47

标签: php html ajax curl

我是将数据发送到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/,这是查找图像是否上传的测试路径,

在哪里可以在卷发中添加标题以使其成功

0 个答案:

没有答案