2013-11-22 4 views
1

Хого IAM в настоящее время работает со страницей, чтобы получить изображение из JSON и хочет сохранить .. , локальным Это мой код ...магазин изображения LocalStorage

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script type="text/javascript" src="eventorig.json"></script> 

</head> 
<body> 
    <img class="imageClass" src=""></img> 
</body> 
<script> 
var url; 

$(".imageClass").attr("src",localStorage.UrlImage); 
for(var i in jsonData) 
     { 
      for(var j in jsonData[i].Events) 
       { 

     for(var key in jsonData[i].Events[j].Images) 

        { 



     url=jsonData[i].Events[j].Images[key].ImageUrl; 

    if(typeof(Storage)!=="undefined") 
        { 

       localStorage.UrlImage=url; 

          } 
         else 
          { 

    document.getElementById("result").innerHTML="Sorry, your browser does not support 
     web storage..."; 

          } 


        } 
       } 
    console.log($(".imageClass").attr("src"));  
     } 
    </script> 
    </html> 

А ниже мой JSON

 var jsonData={"ResponseCode":0, 
     "ApiVersion":0, 
     "Data": 
     {"Events": 

       [ 
      { 
       "Id":1124, 
       "ImageCaption":"Hip flask", 
       "ImageUrl":"https://s3-ap-southeast- 
             2.amazonaws.com/drugdetectionapp- 
             media/1004/alcohol_para.jpg", 
       "Description":"des", 
       "DateUpdated":"2013-11-06T16:55:55" 
      }, 
         ] 

РМКО получает изображение от него, но я не могу хранить это я искал, локальный в течение длительного времени из этого IAM только получать решения с использованием canvas..Here IAM ищет, кроме холста решений это возможно ?? ... Ожидание для ваших расчетных команд Спасибо

+1

'localStorage' может хранить только строки - вы должны сериализуйте изображение в какой-то формат. –

+0

, так как я могу хранить изображения .... это невозможно – Manu

+2

Я думаю, вы могли бы сохранить его в качестве базовой кодированной строки ... – BenM

ответ

0

Здесь у вас есть пример того, как вы можете преобразовать свое изображение в строку, а затем сохранить его в localStorage. Немного сложный, но, возможно, поможет вам. How to store and retrieve image to localStorage?

+0

Извините, но вопросик попросил «_solutions, кроме canvas _» ... Возможно, вы захотите отметить, что он вообще не согласен опубликовать только ссылку для ответа - ответы должны быть поняты сами по себе без ссылки (хотя, конечно, вы можете использовать ссылку для поддержки своего ответа). Если вы хотите сделать это, вы можете использовать комментарий для этой цели. –

+0

@scx: Спасибо за ваш повтор .. но я не могу использовать холст ... есть ли другие решения ... ?? – Manu

+0

Ну, часть ответа в представленной ссылке была о FileReader, но у вас нет файла локально, я поддерживаю. Возможно, вы могли бы использовать другой вариант хранения, например, записать файл в файловую систему HTML5 (http://www.html5rocks.com/en/tutorials/file/filesystem/) или записать его в IndexedDB? – scx

3

Вы можете попробовать загрузить багаж через двоичный XMLHttpRequest, а затем преобразовать необработанные двоичные данные в base64 и сохранить его.

Будьте в курсе той же политики происхождения, см http://en.wikipedia.org/wiki/Same-origin_policy

Код должен выглядеть примерно так:

var req = new XMLHttpRequest(); 
req.open("GET", https://s3-ap-southeast-2.amazonaws.com/drugdetectionapp-media/1004/alcohol_para.jpg", true); 
req.responseType = "arraybuffer"; 

req.onload = function (event) { 
    var buffer = req.response; 
    if (buffer) { 
    var byteArray = new Uint8Array(buffer); 
    // Maybe you could also use buffer directly here... 
    var b64 = btoa(byteArray); 
    localStorage.setItem("imageData", b64); 
    } 
}; 
req.send(null); 

}

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