Q
上傳前預覽圖像?
1
A
回答
1
最近我解決了這個問題是這樣的:
我綁定一個ChangeListener的FileInput
<input type="file" name="photofile" id="photofile">
$('#photofile').bind("change", function(){
readUrl(this);
});
,並在readURL功能設置圖像到像這樣的先前空的img元素:
readUrl = function(input) {
//if File is there
if(input.files && input.files[0]) {
//create a Filereader
var reader = new FileReader();
//bind a function to the reader which will be executed when file is completely loaded
reader.onload = function(e) {
//Here you render your preview image
$("#bild-vorschau").attr("src", e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
在這裏,你可以看到它在一個Working Fiddle
0
看看這篇文章Ajax Upload with Progress Bar並嘗試你想在你的問題上達到的演示。 DEMO
這可能是FileReader這是在現代瀏覽器上工作。
2
它可以使用The HTML5 FileReader API
僅使用JavaScript和的FileReader對象來實現,我們可以允許用戶將圖像加載到一個應用程序。
HTML代碼:
<input type="file" id="getimage">
<fieldset>
<legend>Your image here</legend>
<div id="imgstore"></div>
</fieldset>
JavaScript代碼:
<script>
function imageHandler(e2)
{
var store = document.getElementById('imgstore');
store.innerHTML='<img src="' + e2.target.result +'">';
}
function loadimage(e1)
{
var filename = e1.target.files[0];
var fr = new FileReader();
fr.onload = imageHandler;
fr.readAsDataURL(filename);
}
window.onload=function()
{
var x = document.getElementById("filebrowsed");
x.addEventListener('change', readfile, false);
var y = document.getElementById("getimage");
y.addEventListener('change', loadimage, false);
}
</script>
如何檢查是否瀏覽器支持HTML5文件API:
// Checking all the possible window objects needed for file api
if (window.File && window.FileReader && window.FileList && window.Blob) {
// Browser is fully supportive.
} else {
// Browser not supported. Try normal file upload
}
有用的參考以下鏈接:
Compatibility tables for support of HTML5, CSS3, SVG and more in desktop and mobile browsers
相關問題
- 1. 在上傳多個圖像之前預覽圖像上傳
- 2. Rails + javascript - 上傳前的圖像預覽
- 3. ASPxUploadControl - 上傳前預覽圖像?
- 4. 的JavaScript - 圖像預覽之前上傳
- 5. 上傳之前的預覽圖像
- 6. 將圖像預覽上傳到服務器之前顯示圖像預覽
- 7. 上傳圖像時的圖像預覽
- 8. 精細上傳預覽圖像前上傳 - 的FileReader
- 9. 上傳之前使用FileReader預覽圖像,旋轉圖像
- 10. 一個以上的圖像預覽jQuery函數之前上傳
- 11. 在IE9上傳之前顯示圖像的預覽圖
- 12. 上傳之前的預覽圖
- 13. 提交前預覽圖像。
- 14. 用javascript上傳和預覽圖像
- 15. JavaScript的jQuery的預覽圖像上傳
- 16. 如何上傳預覽圖像?
- 17. jQuery文件上傳預覽圖像
- 18. bootstrap文件上傳與圖像預覽
- 19. 預覽多個上傳symfony的圖像
- 20. 圖像上傳和預覽在mvc 2
- 21. 文件上傳預覽圖像,.PDF
- 22. 如何在上傳之前使用內存流預覽圖像
- 23. 如何預覽先前上傳到服務器的圖像?
- 24. 在上傳前預覽圖像時發生意外的行爲
- 25. 如何在上傳前使用ng-file-upload預覽圖像
- 26. 在上傳之前預覽圖像並將其裁剪
- 27. 在上傳之前使用jquery預覽圖像
- 28. 上傳前的腳本jQuery圖像預覽
- 29. 使用Carrierwave上傳之前的預覽圖像
- 30. 如何在HTML上傳之前預覽圖像?
Safari瀏覽器爲您提供了一些選項,但我也找了其他瀏覽器通過HTML如IE,Chrome和FF –