我在上传之前看过很多关于观看图片的帖子。 一篇帖子有一个非常容易使用FileReader实现的方法:
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#preview_image').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
$("#image_input").change(function(){
readURL(this);
});
但问题是图像是旋转加载的!所以有遗失的财产 我错过了?或者FileReader不够成熟,无法理解布局 一个图像。不知道!
也许我应该使用不同的方法! 关于这个问题的任何想法将不胜感激。
感谢
答案 0 :(得分:4)
我知道很晚才回答这个问题,但这是一个答案
HTML代码
<form method="POST" enctype="multipart/form-data">
<input type="file" id="file">
<div id="preview"></div>
<br>
<a href="#" id="counter"><- counter</a>
<select id="degree">
<option>90</option>
<option>45</option>
</select>
<a href="#" id="clockwise">clockwise -></a>
<hr>
<button type="submit">save image</button>
</form>
Javascript代码
$('a').click(function(){
var a = $('img').getRotateAngle();
var d = Math.abs($('#degree').val());
if($(this).attr('id') == 'counter'){
//d = -Math.abs(+a - +d);
d = a - d;
}
else{d = +a + +d;}
$('img').rotate({animateTo:d});
});
/* image preview */
$('#file').change(function(){
var oFReader = new FileReader();
oFReader.readAsDataURL(this.files[0]);
console.log(this.files[0]);
oFReader.onload = function (oFREvent) {
$('#preview').html('<img src="'+oFREvent.target.result+'">');
};
});
CSS
#preview img {
max-height: 300px;
max-width: 300px;
}
这不是我的代码,在搜索相同的问题时会在给定的小提琴上找到它。
答案 1 :(得分:0)
这是由于本文中建议的图片EXIF信息的Orientation元属性。
image auto rotates while reading url from file upload (when it's a big image)?
此处建议使用方向值
Accessing JPEG EXIF rotation data in JavaScript on the client side