希望の結果:ファイルアップロードフォームから画像を選択し、サムネイルに拡大縮小して表示します。画像を入力から拡大縮小
問題:以下のコードは私が望むものと全く同じですが、ファイルを一度ではなく、画像プレビューを表示するために2回選択する必要があります。 (画像を選択する、表示しない、同じ画像を選択する、縮尺を変更する)手動で幅を&の高さに割り当てると、すべてがうまくいきました。私はコードレビューが必要です! if/if else/else文をコメントアウトして手動でimg.width & img.heightをそれぞれ75に割り当てると、縮尺は変わりませんが、私はディスプレイを取得します。
previewFiles = function (file, i) {
preview = function (file) {
// Make sure `file.name` matches our extensions criteria
switch (/\.(jpe?g|png|gif)$/i.test(file.name)) {
case true:
var reader = new FileReader();
reader.onload = function (e) {
var img = new Image();
img.src = reader.result;
var width = img.width,
height = img.height,
max_size = 75;
if (width <= max_size && height <= max_size) {
var ratio = 1;
} else if (width > height) {
var ratio = max_size/width;
} else {
var ratio = max_size/height;
}
img.width = Math.round(width * ratio);
img.height = Math.round(height * ratio);
img.title = file.type;
$('div.box.box-primary').find('span.prev').eq(i).append(img);
};
reader.readAsDataURL(file);
break;
default:
$('div.box.box-primary').find('span.prev').eq(i).append('<a class="btn btn-app" href="#"><span class="vl vl-bell-o"></span> Unsupported File</a>');
break;
}
};
preview(file);
};
私は少しスケーリングを変更している - この記事次https://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/を試してみましたが、私は同じ問題を持っています。私はキャンバスを使用していないという事実のために問題はありますか?私はかなり新しいw/jQueryです& javascript - ここで何か助けをいただければ幸いです!
こんにちは。私はFileReaderを広範囲に使用したことはありません。私が間違っていると私は奇妙な何かを、私を許して何か。この行では、 'img.src = reader.result;' 'reader.result'からどのようにファイルパスを取得しますか? 'reader.result'にはいつパスが割り当てられましたか? – Mihir
reader.resultは、ファイルリーダーAPIのプロパティです。私は新しいFileReaderが呼ばれたときにそれを信じていました。私はそれが簡単にe.target.result https://developer.mozilla.org/en-US/docs/Web/API/FileReader –
とラベル付けされている可能性があると思います[this](https://developer.mozilla.org/ja-JP/docs/Using_files_from_web_applications#Example_Showing_thumbnails_of_user-selected_images)が役立ちます。 – Mihir