2012-07-20 37 views
6

Tôi đã cho phép thành công cho phép người dùng tải hình ảnh lên bộ nhớ cục bộ nhưng tôi muốn có thể lấy hình ảnh đó và điền vào phần tử hình ảnh trên trang với.Đang tải hình ảnh vào localStorage và đặt hình ảnh src thành vị trí đó

<h3>Please upload the image you wish to use.</h3> 
<input id="photoin" type="file" accept="image/*;capture=camera"></input> 
<a href="#delete_1" data-role="button" onClick="save()">Submit</a> 

<script> 
    var i = 0; 
    function save(){     
     var input = document.getElementById("photoin").value; 
     var name = "photo_" + i; 
     localStorage.setItem(name, input);  
     $("#QR").src = window.localStorage[name]; 
     i++; 
    } 
</script> 

Tôi đang tìm một thứ gì đó sẽ cho tôi biết URL của hình ảnh trong bộ nhớ, vì "window.localStorage [name]" chỉ trả về giá trị được ghép với khóa đó.

Cảm ơn!

+0

Tại sao chính xác bạn muốn làm điều đó? Bộ nhớ cache của trình duyệt có đủ để giữ hình ảnh của bạn trên máy chủ không? – devundef

+0

Tôi muốn người dùng có thể thay đổi nội dung trên một trang (nghĩa là tôi muốn người dùng tải lên hình ảnh của họ chứ không phải của tôi và sau đó có hình ảnh đó xuất hiện trên trang) – NodeNodeNode

+0

Tôi hiểu! Mayge bạn có thể chuyển đổi hình ảnh thành base64 và sau đó đặt vào src = "data: image/png; <.. base64 image data ...>". Bạn sẽ phải sử dụng tệp api HTML5 để đọc tệp hình ảnh sau đó chuyển đổi dữ liệu thành base64. Bài đăng này sẽ giúp bạn hội tụ: http://stackoverflow.com/questions/246801/how-can-you-encode-to-base64-using-javascript#246813 – devundef

Trả lời

12

Vâng, bạn có thể lưu trữ dữ liệu hình ảnh thực tế trong localStorage (mặc dù thận trọng - có một giới hạn)

Có một cái nhìn tại the HTML5 rocks tutorial & cuộn xuống để các bit đầu ĐỌC FILES

Ở đây, file đang được đọc sau đó đầu ra được đặt trong thẻ img: src. Bạn cũng có thể đặt nó trong localStorage

Ví dụ: http://jsfiddle.net/8V9w6/ - chọn tệp hình ảnh, xem hình thu nhỏ? Sau đó tải lại trang. Hình thu nhỏ sẽ vẫn ở đó. (Hoạt động Chrome/Firefox mới nhất)

+0

đó chính xác là những gì tôi muốn! Tôi sẽ thử nó và cho bạn biết cách hoạt động của nó! – NodeNodeNode

Các vấn đề liên quan