2014-10-10 64 views
0

我已经创建了文件上传功能。我得到文件名和文件类型,不知道如何使用动态控制显示图像!如何在文件上载动态显示图像

function AddFileUpload() { 

    var div = document.createElement('DIV'); 

    div.innerHTML = '<input id="file' + counter + '" name = "file' + counter + 

        '" type="file"/>' + 

        '<input id="Button' + counter + '" type="button" ' + 

        'value="Remove" onclick = "RemoveFileUpload(this)" />'; 

    document.getElementById("FileUploadContainer").appendChild(div); 

    counter++; 

} 

function RemoveFileUpload(div) { 

    document.getElementById("FileUploadContainer").removeChild(div.parentNode); 

} 

+0

我假设你使用Apache2 + PHP作为web服务器?知道回答你的问题很重要。 – Steini 2014-10-10 06:02:29

+0

不知道Apache2 + PHP。我想知道如何在文件上传中动态显示选定的图像在JavaScript上 – Rajesh 2014-10-10 06:29:45

+0

对不起,你的问题不是很清楚。 – Steini 2014-10-10 06:44:01

回答

0

下面是一个关于换有趣的项目,我有一些代码。

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function byId(e){return document.getElementById(e);} 

window.addEventListener('load', onDocLoaded, false); 

function onDocLoaded() 
{ 
    byId('mFileInput').addEventListener('change', onFileChosen, false); 
} 

// fileVar is an object as returned by <input type='file'> 
// imgElem is an <img> element - can be on/off screen (doesn't need to be added to the DOM) 
function loadImgFromFile(fileVar, imgElem) 
{ 
    var fileReader = new FileReader(); 
    fileReader.onload = onFileLoaded; 
    fileReader.readAsBinaryString(fileVar); 
    function onFileLoaded(fileLoadedEvent) 
    { 
     var result,data; 
     data = fileLoadedEvent.target.result; 
     result = "data:"; 
     result += fileVar.type; 
     result += ";base64,"; 
     result += btoa(data); 
     imgElem.src = result; 
     imgElem.origType = fileVar.type; // unnecessary for loading the image, used by a current project. 
    } 
} 

function onFileChosen(evt) 
{ 
    if (this.files.length != 0) 
    { 
     var tgtImg = byId('tgt'); 
     var curFile = this.files[0]; 
     loadImgFromFile(curFile, tgtImg); 
    } 
} 

</script> 
<style> 
</style> 
</head> 
<body> 
    <input id='mFileInput' type='file'/><br> 
    <img id='tgt' /> 
</body> 
</html> 
+0

它的工作,但我想在js中的多个文件上传动态显示相同 – Rajesh 2014-10-10 07:02:43

+0

那么,在文件输入的'change'处理程序中,您需要遍历fileobjects数组,而不是只是简单地获取'curFile = this .files [0];'循环'this.files.length'次数,随着时间的推移创建新的目标元素。我还想指出 - 所问的问题已得到解答 - 您现在已将问题更改为旨在处理多个文件的问题。这不是它在SO上的工作方式。 – enhzflep 2014-10-10 07:57:20