3

我的代码如下所示;

<form>
<input type="text" />
<input type="file">
</form>

<div id="notes"></div>

我让文本变量工作,但是,我无法让这个愚蠢的图像工作,我看过很多教程,但我根本无法做到

我知道我必须做点什么

(document.getElementById("file").files)[0] != null) {
var pic = (document.getElementById("file").files)[0];
var imgUrl;
var reader = new FileReader();  
reader.onload = function(e) {
var imgURL = reader.result;
saveDataToLocalStorage(imgURL);
reader.readAsDataURL(pic);

获取图像,然后使用 JSON.parse 获取 url 并将其显示在页面上

但我无法弄清楚它是如何工作的,我也找不到任何不太复杂的例子来实现它到我自己的代码中

在这个小提琴中,我提供了我目前拥有的所有代码 http://jsfiddle.net/VXdkC/

我真的希望你们能帮助我,过去两天我一直在搞砸这件事,它开始让我感到沮丧:(

4

3 回答 3

2

这是我的做法:

var notes = localStorage.getItem('notes'),
    arr   = [];

if (notes) {
    arr = JSON.parse(notes);

    $.each(arr, function(k,v) {
        console.log(v)
        var h1  = $('<h1 />', {text: v.title});
        var p   = $('<p />', {text: v.msg});
        var img = $('<img />', {src: v.image});

        $('#notes').append(h1, p, img);
    });
}

$('#clear').click(function () {
    if (confirm('This will clear all notes, are you sure?')) {
        window.localStorage.setItem('notes','');
        location.reload();
    }
    return false;
});

$('#addNote').click(function () {
    var Title = $('#title').val();
    var Message = $('#message').val();
    var file = $('#file').prop('files')[0];

    var reader = new FileReader();
    reader.readAsDataURL(file);

    reader.onload = function (e) {
        var b64 = e.target.result;
        var note = {
            image : b64,
            title : Title,
            msg   : Message
        }
        arr.push(note);
        localStorage.setItem('notes', JSON.stringify( arr ));
        $('#notes').prepend("<div class='entry'><h1>" + Title + "</h1></p>" + "<p>" + Message + "<img src=" + b64 + " /></p> </div>");
    }
    return false;
});

小提琴

于 2013-11-15T00:41:36.983 回答
1

它很简单

var pic = document.getElementById("file").files[0];
var imgUrl;
var reader = new FileReader();  
reader.onload = function(e) {
  var imgURL = reader.result;
  $('#notes').prepend("<div class='entry'><h1>" + Title + "</h1></p>" + "<p>" + Message + "<img src=" + imgURL + "></p> </div>");

  var notes = $('#notes').html();
  localStorage.setItem('notes', notes);
  saveDataToLocalStorage(imgURL);
}
reader.readAsDataURL(pic);

http://jsfiddle.net/VXdkC/2/

于 2013-11-15T00:23:26.773 回答
1

现场演示(点击)。

的HTML:

<input id="file" type="file">

js:

var fileInput = document.getElementById('file');

fileInput.addEventListener('change', function(e) {
  var reader = new FileReader(); //create reader
  reader.onload = function() { //attach onload
    //do something with the result
    console.log(reader.result);
    localStorage.img = reader.result; //saved to localStorage
    createImg(localStorage.img); //retrieved from localStorage
  };
  var file = e.target.files[0];
  reader.readAsDataURL(file); //trigger onload function
});

function createImg(dataUri) {
  var img = document.createElement('img');
  img.src = dataUri;
  document.body.appendChild(img);
}
于 2013-11-15T00:40:42.067 回答