#php
#php
Вопрос:
ИТАК, я СДЕЛАЛ поиск! Но у меня возникла странная проблема, которую я не видел решаемой.
У меня есть сайт SharePoint, использующий SSL, на котором есть изображения, которые я хотел бы загрузить со своей страницы PHP. У меня есть действительные учетные данные для аутентификации на сайте SharePoint (также единый вход).
Я могу напрямую перейти к URL-адресу файла изображения, и он нормально загружает изображение (и аутентификация не запрашивается).
Когда я пробую любой из доступных вариантов сохранения файлов в PHP, ничего не работает. Ближайший, который я получил, — это файл jpg, созданный размером 0 КБ.
Я не понимаю, почему это позволяет мне загружать изображение в браузере напрямую, но я не могу получить скрипт для локальной загрузки этого изображения.
Редактировать:
function get_web_page( $url )
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "spider", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_SSL_VERIFYPEER => false // Disabled SSL Cert checks
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
$out = get_web_page("https://myfakeurl/65980014247151/65980014247151.jpg");
print_r($out);
Вывод:
Array
(
[url] => https://myfakeurl/65980014247151/65980014247151.jpg
[content_type] =>
[http_code] => 401
[header_size] => 287
[request_size] => 179
[filetime] => -1
[ssl_verify_result] => 20
[redirect_count] => 0
[total_time] => 0.031
[namelookup_time] => 0
[connect_time] => 0.015
[pretransfer_time] => 0.015
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => 0
[upload_content_length] => 0
[starttransfer_time] => 0.031
[redirect_time] => 0
[certinfo] => Array
(
)
[errno] => 0
[errmsg] =>
[content] =>
)
Несанкционированный ответ 401 заставляет меня думать, что он хочет, чтобы я каким-то образом аутентифицировался, но я не знаю как. Я предполагаю, что загрузка страницы непосредственно в браузере работает через единый вход, но это не будет работать с cURL.
Комментарии:
1. возможно, это может помочь?
2. нет кубиков. Я не упоминал, что использую SharePointAPI Thybag для доступа к сайту и извлечения URL-адресов изображений из списка библиотеки документов. Это работает идеально. Я даже могу отображать изображения на странице, используя возвращаемый путь. Где я застрял, я пытаюсь записать этот HTML в скрипт TCPDF, и он, по-видимому, не может получить изображения либо с помощью стандартного html-пути к img, либо с попыткой сначала загрузить файл локально, а затем сослаться на него (с чем я сейчас и играю).).