以下を参考に作成。
動作確認は次の環境で実施。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
<!--
function preview(ele) {
if (!ele.files.length) return; // ファイル未選択
var file = ele.files[0];
if (!/^image\/(png|jpeg|gif)$/.test(file.type)) return; // typeプロパティでMIMEタイプを参照
// CANVAS取得
var canvas = $("#c1");
var ctx = canvas[0].getContext("2d");
var img = document.createElement('img');
var fr = new FileReader();
fr.onload = function() {
img.src = fr.result; // 読み込んだ画像データをsrcにセット
}
img.onload = function() {
ctx.drawImage(img, 0, 0); // 読み込んだ画像データをcanvasに描画
}
fr.readAsDataURL(file); // 画像読み込み
}
//-->
</script>
</head>
<body>
<form>
<input type="file" name="file" onchange="preview(this)" size="80"/><br/>
<canvas id="c1" width="640" height="480" style="border: dotted;"/>
</form>
</body>
</html>