2011-01-25 4 views

ответ

1

Я не точно, что вы здесь просите, но если вы хотите обойти ограничения JS кросс-домена, вы всегда можете создать страницу PHP (или что-то подобное) на своем сервере, которая извлекает изображения из другого домена и обслуживает их как локальные .

Ниже приведен код jQuery для изменения атрибута src объекта изображения sh а также конкретную картину. Допустим, мы хотим показать изображение http://www.someotherdomain.com/images/pictureofbacon.png ....

var urlStr = 'http://www.someotherdomain.com/images/pictureofbacon.png'; 

//encode the image's url for passing 
var url_enc = encodeURIComponent(urlStr); 

$('#imageBacon').attr(
    'src', 'http://www.yourdomain.com/getPhoto?url=' + url_enc 
); //call your php page, passing to it the encode image url 

Затем на странице PHP, вы можете получить URL и обработать изображение локально. Этот PHP проверен на работу (требуется GD2), если вы передадите ему действительный URL-адрес изображения.

getPhoto.php

<?php 
    $url = $_REQUEST['url']; 
    SendImageToBrowser ($url); 

    function SendImageToBrowser($file){ 
    $info = getimagesize($file); 
    $final_width=$info[0]; 
    $final_height=$info[1]; 

    switch ($info[2]) { 
     case IMAGETYPE_GIF: 
     $image = imagecreatefromgif($file); 
     break; 
     case IMAGETYPE_JPEG: 
     $image = imagecreatefromjpeg($file); 
     break; 
     case IMAGETYPE_PNG: 
     $image = imagecreatefrompng($file); 
     break; 
     default: 
     return false; 
    } 
    imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $final_width, $final_height, $width_old, $height_old); 
     $mime = image_type_to_mime_type($info[2]); 
     header("Content-type: $mime"); 
     $output = NULL; 

    switch ($info[2]) { 
     case IMAGETYPE_GIF: 
     imagegif($image, $output); 
     break; 
     case IMAGETYPE_JPEG: 
     imagejpeg($image, $output); 
     break; 
     case IMAGETYPE_PNG: 
     imagepng($image, $output); 
     break; 
     default: 
     return false; 
    } 
    return true; 
} 
?> 
Смежные вопросы