画像をサーバーにアップロードするためのアップロード コントロールがありますが、アップロードする前に、画像のサイズが正しいかどうかを確認したいだけです。JavaScript でクライアント側でできることはありますか?
質問する
83165 次
7 に答える
74
フォームを送信する前に確認できます。
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 == 300 ) {
form.submit();
}
else {
//fail
}
};
}
else { //No file was input or browser doesn't support client side reading
form.submit();
}
});
これは最新のブラウザーでのみ機能するため、サーバー側でサイズを確認する必要があります。また、クライアントを信頼できないため、サーバー側でチェックする必要があるもう 1 つの理由です。
于 2012-11-26T20:03:33.993 に答える
47
はい、HTML5 API はこれをサポートしています。
var _URL = window.URL || window.webkitURL;
$("#file").change(function(e) {
var image, file;
if ((file = this.files[0])) {
image = new Image();
image.onload = function() {
alert("The image width is " +this.width + " and image height is " + this.height);
};
image.src = _URL.createObjectURL(file);
}
});
デモ(クロムでテスト済み)
于 2012-11-26T20:01:50.640 に答える
-3
これを試してみてください。私は過去にこれを使用しました。 https://github.com/valums/file-uploader
于 2012-11-26T20:01:15.193 に答える