У меня есть проблема, я надеюсь, что кто-то может помочь. Я собираю некоторую информацию о формах Cognito. Прямо сейчас это - основная информация, но добавит больше. Это форма для студентов, чтобы отправить свое имя, контактную информацию и резюме. Форма Cognito позволяет загружать файл do c или pdf. An отправляет данные в виде JSON данных в промежуточный файл php (ниже), который анализирует их и вставляет в mysql таблицу 'студентов'.
Приведенный ниже код работает, и я могу получить данные и он уходит в таблицу. В поле pdf резюме указано BLOB -5B, так что я знаю, что что-то там произошло. Проблема в том, что я не могу читать это. Я подозреваю, что не принимаю правильную часть данных JSON.
Связываю ли я весь объект Resume $contact->{'Resume'}
? или это должно быть $contact->{'Resume'}-->{'somethingelse'}
?
Моя структура для поля большого блога резюме - mediumblob null - Да по умолчанию null
<?php
$json = file_get_contents("php://input");
if (empty($json)) {
echo "No data payload";
die;
}
$host="db5000312294.hosting-data.io";
$user="xxx";
$password="xxx";
$dbname="xxx";
$contact = json_decode($json);
if ($contact == null && json_last_error() !== JSON_ERROR_NONE) {
echo "Error reading JSON: " . json_last_error();
}
$mysqli = new mysqli("$host", "$user", "$password","$dbname");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
die;
}
$query = "insert into students (fname,lname,phone,email,resume,position) values (?,?,?,?,?,?)";
if (!($stmt = $mysqli->prepare($query))) {
echo "Prepare failed: (" . $stmt->errno . ") " . $stmt->error;
die;
}
if (!($stmt->bind_param("ssssss",
$contact->{'Name'}->{'First'},
$contact->{'Name'}->{'Last'},
$contact->{'Phone'},
$contact->{'Email'},
$contact->{'Resume'},
$contact->{'WhatPositionAreYouApplyingFor'}))) {
echo "Bind failed: (" . $stmt->errno . ") " . $stmt->error;
}
if (!($stmt->execute())) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
?>
This is what the JSON section looks like
"Resume": [
{
"ContentType": "application/pdf",
"Id": "F-qIr7WOAa2Yeh9ZnzPcvspk",
"IsEncrypted": false,
"Name": "Principal etfs.pdf",
"Size": 188451,
"File": "https://services.cognitoforms.com/fa/SVh77OiVmEK-J1ZtGNTRAQ?token=RUN_uR__rdZy_FTNnav8GGP6uEHoT7vYR2Yo9uccQxyfX4sIDMcqaOw52U27pIggHrjsfuQK0tBXYiiYqdPDGw$$"
}
],
Сохранение PDF вне базы данных и сохранение только ссылки не вариант, так как он загружен на Cognito и JSON передан мне.