प्रदर्शित करें यह काफी आसान होना चाहिए, लेकिन घंटों तक इसके साथ कुश्ती के बाद, मैं अभी भी इसे काम नहीं कर सकता। अब तक, मेरे सभी प्रयासों के परिणामस्वरूप छवि को 'भ्रष्ट या छोटा कर दिया गया है', फ़ायरफ़ॉक्स के अनुसार।सर्वर से एक छवि पुनर्प्राप्त करें, इसे स्थानीय स्टोरेज में संग्रहीत करें, और इसे
एक jQuery-ajax कॉल के साथ सर्वर से छवि प्राप्त करें:
$.ajax({
async: false,
url: db[key]["DocumentLink"],
success: function (result2) {
Base64 छवि सांकेतिक शब्दों में बदलना, और localStore में संग्रहीत:
इस उदाहरण में मैं jQuery बेस 64 एन्कोडिंग उपयोग कर रहा हूँ प्लगइन, लेकिन मैंने कई कोशिश की है।
var dbKey = "Doc " + db[key]["ID"] + " " + db[key]["Title"];
console.log("storing: " + db[key]["DocumentLink"] + " in " + dbKey + "\n");
localStorage.removeItem(dbKey);
var base64Image = $.base64Encode(result2);
console.log(base64Image.length);
localStorage.setItem(dbKey, base64Image);
console.log("is stored: " + db[key]["DocumentLink"] + " in " + dbKey + "\n");
}
})
प्रदर्शन एक डेटा यूआरएल के साथ छवि:
function openImageFromDB(dbKey) {
console.log("Trying to display image with key " + dbKey);
var base64Img = localStorage.getItem(dbKey);
document.getElementById("documentHolder").src='data:image/jpeg;base64,' + base64Img;
}
इसी img:
<img id="documentHolder" alt="Image view placeholder" src="" />
हालांकि, हर कोशिश पर, फ़ायरफ़ॉक्स प्रदर्शित करता है:
Image corrupt or truncated: data:image/jpeg;base64,77+977+977+977+9a<... much longer string>
यूआरएल: एक वैध जेपीईजी छवि को इंगित करता है, और base64Image.length और त्रुटि संदेश दिखाता है कि var/localStorage में वास्तव में बेस 64 एन्कोडेड डेटा लगता है।
कोई विचार?
आपके संक्षिप्त उत्तर के लिए धन्यवाद। कृपया ध्यान दें कि, इस तरह, छवि को अभी भी सर्वर-साइड पर बेस 64 में परिवर्तित किया जा रहा है। मैं इसे क्लाइंट-साइड पर रूपांतरित करना चाहता हूं, लेकिन मुझे विश्वास है कि छवि किसी भी तरह AJAX- कॉल की प्रक्रिया में उलझी हो सकती है।
पी। - मैं एएसपीनेट का उपयोग कर रहा हूं, लेकिन मुझे निश्चित रूप से बेस 64 छवियों को सर्वर-एन्कोड करने का तरीका ढूंढने में सक्षम होना चाहिए। मैं बस सर्वर-साइड कोड पर कम निर्भर होना चाहता हूं। – TinkerTank
@ टम्बलकॉ: आपको सर्वर-साइड की तुलना में क्लाइंट-साइड पर निश्चित रूप से कम निर्भर होना चाहिए। सर्वर-साइड पर बनाई गई हर प्रक्रिया क्लाइंट-साइड के बाद अधिक तेज और सुरक्षित होती है। ;) –