如何从文件输入中显示图像?

时间:2014-03-07 08:30:59

标签: javascript

我想选择一个文件并在浏览器上显示图像。 我尝试插入直接图像路径,它工作。

现在的问题是,如何显示<input type=file>

中的图像

以下是我的代码:

function myFunction() {
    var file = document.getElementById('file').files[0];
    var reader = new FileReader();

    reader.onloadend = function {
        var image = document.createElement("img");
        image.src = "reader"
        image.height = 200;
        image.width = 200;

        document.body.appendChild(image);
    }
}
<input type=file name=filename id=file>
<button type=button onclick='myFunction()'>Display</button>

2 个答案:

答案 0 :(得分:3)

function myFunction() {

    var file = document.getElementById('file').files[0];
    var reader  = new FileReader();
    // it's onload event and you forgot (parameters)
    reader.onload = function(e)  {
        var image = document.createElement("img");
        // the result image data
        image.src = e.target.result;
        document.body.appendChild(image);
     }
     // you have to declare the file loading
     reader.readAsDataURL(file);
 }

http://jsfiddle.net/Bwj2D/11/工作示例

答案 1 :(得分:0)

是carrefull:reader.onloadend = function {  必须是reader.onloadend = function(){

但为什么要使用fileReader? 例如,我的功能是在我的webSite =&gt;

中添加图片
function createImageBase(src, alt) {
    var image = document.createElement('img');
    image.src = src;
    image.alt = alt;
    return image;
}


function addPicture(targetID, imageSRC){
   var location = document.getElementById(targetID);
   var image = createImageBase(imageSRC, imageSRC);
   location.appendChild(image);
}

然后就这样称呼它:       显示