我有一个像
这样的输入标签<form id="myForm">
<!-- has lots of inputs above like username password etc -->
<input type="file" id="user_photo" name="user_photo" tabindex="6" size="6" class="" accept="jpeg|png|jpg|gif|PNG|JPEG|GIF|JPG" >
OnChange,我想通过AJAX上传图像并将其保存在服务器中。保存后,它应显示在预览div中,我可以使用jCrop按用户的意愿裁剪,并在用户单击提交按钮时再次将其保存到服务器(裁剪后)。
如果你有更好的方法,请告诉我。
注意,我只是想用文件内容触发ajax post请求并将其保存到我的uploads文件夹中,而不发送其余的表单元素。
我使用codeigniter。我已经尝试过valum的fileuploader ..没有给我结果。
答案 0 :(得分:0)
答案从这里被盗:Can i preview the image file who uploaded by user in the browser?
HTML5 File Api
加载图像客户端。 onRelease
方法进行Ajax调用。 <img id="preview" src="placeholder.png" height="100px" width="100px" />
<input type="file" name="image" onchange="previewImage(this)" accept="image/*"/>
<script type="text/javascript">
function previewImage(input) {
var preview = document.getElementById('preview');
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
preview.setAttribute('src', e.target.result);
$('#preview').Jcrop({
onRelease: yourAjaxFunctionToSubmitToServer
});
}
reader.readAsDataURL(input.files[0]);
} else {
preview.setAttribute('src', 'placeholder.png');
}
}
</script>
显然,这需要根据您的需要进行一些修改,但您明白了。