2015-11-07 24 views
2

如何獲得的數據是這樣的:獲取數據文件

data:application/pdf;base64,JVBERi0xLjQKJeHp69MKMSAwIG9iago8PC9UeXBlIC9DYXR…AKdHJhaWxlcgo8PC9TaXplIDE4Ci9Sb290IDEgMCBSPj4Kc3RhcnR4cmVmCjg4MzEzCiUlRU9G 

從輸入文件

$('#file').change(function(e) { 
 
    var file = $('#file')[0].files; 
 
    for (var i = 0; i < file.length; i++) { 
 
    console.log(file[i].name) 
 
    console.log(file[i].type) 
 
    console.log(file[i].size) 
 
    } 
 

 

 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="file" id="file" name="file" multiple="">

我得到的樣品一樣

function readURL(input) { 
    var reader = new FileReader(); 
    reader.onload = function(e) { 
     console.log(e.target.result) 
    }; 
    reader.readAsDataURL(input); 
} 

我需要從輸入文件的變化得到它,因爲我希望把它放在一個錨的href的

<a class="image" href=' + e.target.result + '><img style="width:150px; height:150px;" u="image" src=' + e.target.result + '></a>

,使我的代碼看起來像

$('#file').change(function(e) { 
    var file = $('#file')[0].files; 
    for (var i = 0; i < file.length; i++) { 
     $('body').append('<a class="image" href=' + e.target.result + '><img style="width:150px; height:150px;" u="image" src=' + e.target.result + '></a>') 
    } 
}); 
+0

您需要將它追加到'reader.onload'處理函數中並從'for'循環調用'readURL()'。請參閱例如:http://jsfiddle.net/L5w7fb7j/ –

+0

我需要將返回?像返回e.target.result? @ A.Wolff – guradio

+1

請參閱jsFiddle,但不能從ansyc方法onload事件返回。你可以使用延期對象,但這在這裏毫無用處 –

回答

2

你想要什麼正在添加定位點一次您將獲得可用的數據文件。它是從reader onload事件追加這些元素的最簡單方式。請參閱例如:

function readURL(input) { 
    var reader = new FileReader(); 
    reader.onload = function(e) { 
     // here data is available, you can append it 
     $('body').append('<a class="image" href=' + e.target.result + '><img style="width:150px; height:150px;" u="image" src=' + e.target.result + '></a>') 
    }; 
    reader.readAsDataURL(input); 
} 

$('#file').change(function(e) { 

    var files = $('#file')[0].files; 

    for (var i = 0; i < files.length; i++) { 
     readURL(files[i]);  
    } 
});