Я пытаюсь загрузить видео/изображение, используя опцию возобновляемой загрузки Google API.
Если у меня есть файл размером 200 МБ, мне нужно загрузить фрагмент N раз.
Мой код возвращает код состояния 308 N-1 раз (кроме последнего). На последний фрагмент Google не отвечает мне (мой php-сервер говорит «пустой ответ с сервера»)
Пожалуйста, помогите мне, где я ошибаюсь.
global $access_token;
$title = basename($videoPath);
$mimeType = mime_content_type($videoPath);
$content_length = getSize($videoPath);
$curl = new Curl();
$curl->setHeader("Host", "picasaweb.google.com");
$curl->setHeader("Content-Length", 0);
$curl->setHeader("X-upload-content-length", $content_length);
$curl->setHeader("X-upload-content-type", $mimeType);
$curl->setHeader("Slug", $title);
$curl->setHeader("Authorization", "Bearer $access_token");
$curl->setHeader("Content-Type", 'application/atom+xml');
$curl->setHeader("User-Agent", "CXchange-CXchange-1.0 cURL/1.11.3");
$curl->setHeader("Accept-encoding", "identity");
$curl->setHeader("GData-Version", "2");
$curl->setHeader("MIME-version", "1.0");
try {
//Get the resumable uri
$url = "https://picasaweb.google.com/data/uploa ... lbumid/$id";
$responce = $curl->post($url);
$responce_code = $curl->http_status_code;
if ($responce_code == 200) {
$headers = $curl->response_headers;
foreach ($headers as $header) {
if (strstr($header, "Location")) {
echo $uri = str_replace("Location:", "", $header);
break;
}
}
} else {
echo "Upload faild";
}
$cnt = 0;
$chunk_size = 256 * 1024 * 1;
$handle = fopen($videoPath, 'rb');
if ($handle === false) {
return false;
}
$progress = 0;
while (!feof($handle)) {
$buffer = fread($handle, $chunk_size);
$cnt = strlen($buffer);
$lastBytePos = $progress + $cnt - 1;
$curl = new Curl();
$curl->setHeader("Host", "picasaweb.google.com");
$curl->setHeader("Content-Length", $chunk_size);
$curl->setHeader("Authorization", "Bearer $access_token");
$curl->setHeader("Content-Type", $mimeType);
$curl->setHeader("User-Agent", "CXchange-CXchange-1.0 cURL/1.11.3");
$curl->setHeader("Accept-encoding", "identity");
$curl->setHeader("Content-Range", "bytes $progress-$lastBytePos/$content_length");
$curl->setHeader("GData-Version", "2");
$curl->setHeader("MIME-version", "1.0");
$curl->setHeader("Expect", "");
$responce = $curl->put(trim($uri), $buffer);
$responce_code = $curl->http_status_code;
if ($responce_code == 308) {
$headers = $curl->response_headers;
foreach ($headers as $header) {
if (strstr($header, "Range:")) {
$temp = explode("-", $header);
$progress = end($temp)+1;
break;
}
}
} else {
echo "Upload faild";
}
}
fclose($handle);
} catch (Exception $e) {
echo '';
}
Подробнее здесь: https://stackoverflow.com/questions/310 ... load-issue
Проблема с возобновлением загрузки изображений/видео Picasa ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1730345999
Anonymous
Я пытаюсь загрузить видео/изображение, используя опцию возобновляемой загрузки Google API.
Если у меня есть файл размером 200 МБ, мне нужно загрузить фрагмент N раз.
Мой код возвращает код состояния 308 N-1 раз (кроме последнего). На последний фрагмент Google не отвечает мне (мой php-сервер говорит «пустой ответ с сервера»)
Пожалуйста, помогите мне, где я ошибаюсь.
global $access_token;
$title = basename($videoPath);
$mimeType = mime_content_type($videoPath);
$content_length = getSize($videoPath);
$curl = new Curl();
$curl->setHeader("Host", "picasaweb.google.com");
$curl->setHeader("Content-Length", 0);
$curl->setHeader("X-upload-content-length", $content_length);
$curl->setHeader("X-upload-content-type", $mimeType);
$curl->setHeader("Slug", $title);
$curl->setHeader("Authorization", "Bearer $access_token");
$curl->setHeader("Content-Type", 'application/atom+xml');
$curl->setHeader("User-Agent", "CXchange-CXchange-1.0 cURL/1.11.3");
$curl->setHeader("Accept-encoding", "identity");
$curl->setHeader("GData-Version", "2");
$curl->setHeader("MIME-version", "1.0");
try {
//Get the resumable uri
$url = "https://picasaweb.google.com/data/upload/resumable/media/create-session/feed/api/user/default/albumid/$id";
$responce = $curl->post($url);
$responce_code = $curl->http_status_code;
if ($responce_code == 200) {
$headers = $curl->response_headers;
foreach ($headers as $header) {
if (strstr($header, "Location")) {
echo $uri = str_replace("Location:", "", $header);
break;
}
}
} else {
echo "Upload faild";
}
$cnt = 0;
$chunk_size = 256 * 1024 * 1;
$handle = fopen($videoPath, 'rb');
if ($handle === false) {
return false;
}
$progress = 0;
while (!feof($handle)) {
$buffer = fread($handle, $chunk_size);
$cnt = strlen($buffer);
$lastBytePos = $progress + $cnt - 1;
$curl = new Curl();
$curl->setHeader("Host", "picasaweb.google.com");
$curl->setHeader("Content-Length", $chunk_size);
$curl->setHeader("Authorization", "Bearer $access_token");
$curl->setHeader("Content-Type", $mimeType);
$curl->setHeader("User-Agent", "CXchange-CXchange-1.0 cURL/1.11.3");
$curl->setHeader("Accept-encoding", "identity");
$curl->setHeader("Content-Range", "bytes $progress-$lastBytePos/$content_length");
$curl->setHeader("GData-Version", "2");
$curl->setHeader("MIME-version", "1.0");
$curl->setHeader("Expect", "");
$responce = $curl->put(trim($uri), $buffer);
$responce_code = $curl->http_status_code;
if ($responce_code == 308) {
$headers = $curl->response_headers;
foreach ($headers as $header) {
if (strstr($header, "Range:")) {
$temp = explode("-", $header);
$progress = end($temp)+1;
break;
}
}
} else {
echo "Upload faild";
}
}
fclose($handle);
} catch (Exception $e) {
echo '';
}
Подробнее здесь: [url]https://stackoverflow.com/questions/31085690/picasa-image-video-resumable-upload-issue[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия