2013-12-11 4 views
1

Я сохраняю данные как файл jpeg, но он не сохраняется должным образом.Сохранение выходных данных в формате изображения

$file= drupal_http_request('https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=CnRvAAAAwMpdHeWlXl-lH0vp7lez4znKPIWSWvgvZFISdKx45AwJVP1Qp37YOrH7sqHMJ8C-vBDC546decipPHchJhHZL94RcTUfPa1jWzo-rSHaTlbNtjh-N68RkcToUCuY9v2HNpo5mziqkir37WU8FJEqVBIQ4k938TI3e7bf8xq-uwDZcxoUbO_ZJzPxremiQurAYzCTwRhE_V0&sensor=true&key=AIzaSyDGsEo0x-oqsIDVn0EaTx6mN1BMXkAhZDs'); 
    $handle=fopen("/public/image.jpeg",'w'); 
    fwrite($handle,$file->data); 
    fclose($handle); 

Выход: $ file-> данные: "IHDRddpâ • TIDATxÚílUåÇkbæ ....."

+0

Что вы пытаетесь сохранить в изображении? – Ryan

ответ

1

Сохранить себя головная боль - использование system_retrieve_file()

$result = system_retrieve_file($url, 'public://image.jpeg'); 

Представляю себе ваш текущий код не работает, потому что вы не используете правильный URI для общей папки, но вы можете использовать API, если он доступен.

+0

URL-адрес, который я использую, - это URL-адрес сайта google, ответ которого является изображением. Теперь я хочу сохранить его на своем диске, поэтому я создал файл jpeg и попытался написать контент на нем, но он не работает. – user3058875

+0

ok ... предположительно вы хотя бы пробовали код, который я разместил? Что случилось? Какие ошибки вы получили, если они не работают? Кстати, тот же метод работал для меня сотни раз, поэтому, если он не работает, вы, вероятно, не полностью прочитали документацию – Clive

+0

$ url = 'https: //maps.googleapis.com/maps/api/place/photo ? MaxWidth = 400 & photoreference = CnRvAAAAwMpdHeWlXl-lH0vp7lez4znKPIWSWvgvZFISdKx45AwJVP1Qp37YOrH7sqHMJ8C-vBDC546decipPHchJhHZL94RcTUfPa1jWzo-rSHaTlbNtjh-N68RkcToUCuY9v2HNpo5mziqkir37WU8FJEqVBIQ4k938TI3e7bf8xq-uwDZcxoUbO_ZJzPxremiQurAYzCTwRhE_V0 & датчика = истина & ключ = AIzaSyDGsEo0x-oqsIDVn0EaTx6mN1BMXkAhZDs'; $ file = drupal_http_request ($ url); $ handle = fopen ('public: //image_file.jpeg'''w'); // system_retrieve_file ($ url, 'public: //image1.jpeg'); fwrite ($ handle, $ file-> data); fclose ($ handle); – user3058875

0

Вместо file функции вы можете использовать copy как это:

try{   
copy($source, $destination); 
}catch(Exception $e) { 
    echo "<br/>\n unable to copy '$fileName'. Error:$e"; 

} 
Смежные вопросы