我希望能够在上传之前预览文件(图像).预览操作应该在浏览器中全部执行,而不使用Ajax上传图像.
我怎样才能做到这一点?
我需要为用户提供一种手段,以jpeg格式将照片上传到他们的网站.但是,照片的原始尺寸非常大,我想在上传前调整大小选项对用户来说非常轻松.似乎我唯一的选择是客户端应用程序,它在通过Web服务上载照片之前调整照片大小,或者在上传操作上调整照片大小的客户端JavaScript挂钩.第二个选项是非常试验性的,因为我没有JavaScript图像大小调整库,并且很难让JavaScript运行我当前的调整大小工具ImageMagick.
我确信这不是一个不常见的场景,并且对这样做的网站的一些建议或指针将不胜感激.
我有这个脚本,它用于获取浏览器上传图像的宽度和高度.
参考:http://renevier.net/misc/resizeimg.html
function createReader(file) {
reader.onload = function(evt) {
var image = new Image();
image.onload = function(evt) {
var width = this.width;
var height = this.height;
alert (width); // will produce something like 198
};
image.src = evt.target.result;
};
reader.readAsDataURL(file);
}
for (var i = 0, length = input.files.length; i < length; i++) {
createReader(input.files[i]);
}
Run Code Online (Sandbox Code Playgroud)
我想从createReader函数外部访问值的宽度和高度.我怎样才能做到这一点?
我有一个表单,其中在 jQuery 的验证插件中进行验证。我的表单包含两个元素,一个 input type=file 和一个提交按钮。用户将选择一个图像,如果该图像小于 500 像素,则不会被接受,并应显示错误消息。我为此创建了一个称为宽度的新方法,但由于某种原因它不起作用。当我尝试提交小于 500 像素的图像时,不会显示错误消息。这是我的jsfiddle。
HTML
<form class="some_form" enctype="multipart/form-data" method="post" action="">
<input type="file" name="photo" id="photoInput" />
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
jQuery
$.validator.addMethod('width', function(value, element) {
if ($(element).data('width')) {
return $(element).data('width') >= 500;
}
return true;
}, 'Image needs to be wider than 500px');
$(".some_form").validate({
rules: {
photo: {
required: true,
width: 500
}
},
messages: {
photo: {
required: "You must insert an image",
width: "Your image's width must be greater than 500px"
}, …Run Code Online (Sandbox Code Playgroud) 我正在为一家印刷公司设计一个网站。他们想要一个图像尺寸/分辨率检查器,让他们的客户上传他们想要打印的图像,并告诉他们图像分辨率是否足以打印。
我正在使用 Adobe Muse,所以我需要一个简单的 HTML 和 CSS 解决方案,没有任何服务器端要求。
基于这个问题,这是我到目前为止所拥有的:
window.URL = window.URL || window.webkitURL;
$("form").submit(function(e) {
var form = this;
e.preventDefault(); //Stop the submit for now
//Replace with your selector to find the file input in your form var
fileInput = $(this).find("input[type=file]")[0];
file = fileInput.files && fileInput.files[0];
if (file) {
var img = new Image();
img.src = window.URL.createObjectURL(file);
img.onload = function() {
var width = img.naturalWidth, height = img.naturalHeight;
window.URL.revokeObjectURL( img.src );
if( width == 400 && height …Run Code Online (Sandbox Code Playgroud)