Подача файла в гравитационную форму api от axios - PullRequest
1 голос
/ 05 февраля 2020

Я хочу загрузить файл с gravity form API из nuxtJs с axios

Я успешно сохраняю текстовые данные в гравитационной форме, но не могу сохранить файлы

Nuxt JS

var formData = new FormData()
formData.append('id',this.form.id)

for (let file in this.form.file) {
    formData.append(file,this.form.file[file])

}

for (let form in this.form.values) {
    formData.append(form,this.form.values[form])

}

this.$axios.post(this.$store.state.apiUrl+'/gf_forms', formData, {
    headers: {
        'Content-Type': 'multipart/form-data'
    }
})
.then(function (response) {
    console.log(response.data);
})
.catch(function (error) {
    console.log(error);
}); 

Функция Wordpress

header( 'Access-Control-Allow-Origin: *' );
header( 'Access-Control-Allow-Methods:  GET, POST' );
header( 'Access-Control-Allow-Credentials: false' );
header( 'Access-Control-Expose-Headers: Link', false );
header("Access-Control-Allow-Headers: *");
$parameters=[];
if (count($_FILES)!=0) {
    foreach ($_FILES as $key => $fileData) {
        $parameters[$key] = $fileData['name'];
    }
}
if (count($_POST)!=0) {
    foreach ($_POST as $key => $postData) {
        $parameters[$key] = $postData;
    }
}

// Local 
$consumer_key       = '*******************';
$consumer_secret    = '*****************************'; 

$url = site_url() . '/wp-json/gf/v2/forms/'.$parameters['id'].'/submissions';

require( 'class/class-oauth-request.php' );
$oauth = new OAuth_Request( $url, $consumer_key, $consumer_secret, 'POST', array() );
$full_url = $oauth->get_url();

$response = array();
// Send request
$response = wp_remote_request( $full_url,
    array('method'  => 'POST',
        'body'    => json_encode($parameters),
        'headers' => array('Content-type' => 'application/json')
    )
);
return $response;
...