javascript — загрузка файла jQuery с помощью API Wistia

У меня есть демонстрационная страница с jQuery File Upload, которая в настоящее время позволяет загружать видеофайлы на веб-хостинг через PHP.

Код:

<?
// A list of permitted file extensions
$allowed = array('mov', 'mp4', 'avi');

if(isset($_FILES['upl']) && $_FILES['upl']['error'] == 0){

$extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION);

if(!in_array(strtolower($extension), $allowed)){
echo '{"status":"error"}';
exit;
}

if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/'.$_FILES['upl']['name'])){
echo '{"status":"success"}';
exit;
}
}

echo '{"status":"error"}';
exit;
?>

Мне нужно, чтобы это демо полностью работало, чтобы загружать видеофайлы в мою галерею Wistia через их API вместо каталога загрузки.

Рабочий фрагмент файла upload.php для API Wistia с URL-адресом видео:

<?
$data = array(
'api_password' => '[password]',
'project_id' => '[project_id]',
'url' => '[video_url]'
);

$wistia = curl_init('https://upload.wistia.com');
curl_setopt_array($wistia, array(
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_POSTFIELDS => http_build_query($data)
));

// Send the request
$wistia_request = curl_exec($wistia);
?>

Однако изменение этих значений и использование их в моей форме не работает:

$data = array(
'api_password' => '[password]',
'project_id' => '[project_id]',
'file' => '@' . $_FILES['upl']['name']
);

Как видите, мне нужно руководство и помощь. Любые намеки очень ценятся.

Вот несколько документов для этого проекта:

http://wistia.com/doc/upload-api

https://github.com/blueimp/jQuery-File-Upload

2

Решение

Решено!

$data = [
'file' => "@{$_FILES['upl']['tmp_name']};filename={$_FILES['upl']['name']};type={$_FILES['upl']['type']}"]
1

Другие решения

Если вы собираетесь загружать файл напрямую, нет причин перемещать загруженный файл. Вы могли бы просто использовать tmp-файл напрямую.

$data= [
'file' => '@' . $_FILES['upl']['tmp_name']
]

Следующая проблема заключается в том, что вы сейчас загружаете 2 видео. 1 с компьютера пользователя на ваш сервер, а затем один с вашего сервера на Wistia.
Таким образом, вместо того, чтобы позволить пользователю ждать 2 загрузки, вы должны переместить вторую в фоновую задачу.

0

По вопросам рекламы [email protected]