以前、jQuery.uploadでアップロード画像のサムネイルの作成というエントリーを書いたので、それの実装を作ってみました。アップロードする画像を選択すると、アップロードされ、それのサムネイルが表示されます。
また、ページを離れるときに画像をJavascriptで削除していますが、実際に使うときは使わない場面も多いと思いますので、その部分は適当に削除するなり、なんなりして下さい。
デモ:http://demo.torounit.com/jquery.upload/
script.js(ajaxでのアップロード等々)
[js]
jQuery(function($){
	//送信ボタンの非表示
	$(‘#submit’).hide();
	//フォームの内容が変更されたとき
	$(‘#img’).change(function() {
	    var preview = $(‘#preview’);
	    //現在表示されているものを消す。
	    preview.find("img").fadeOut(300);
	    //アップロード
	    $(this).upload(
			‘upload.php’,
			$("form").serialize(),
			function(html){
			//サムネイルの表示
	        	preview.html(html).animate({"height":preview.find("img").height()+"px"},300,function(){
	            	preview.find("img").hide().fadeIn(300);
	        	});
	    	},’html’);
	});
	//離れるときに画像を削除
	$(window).bind("beforeunload",function(){
		var unlinkFile = $("#postPhotoName").val();
		$.ajax({
			async: false,
			cache: false,
			type:	"POST",
			url:	"upload.php",
			data:	"postPhotoName="+unlinkFile
		});
	});
});
[/js]
upload.php(アップロードしたファイルを加工するスクリプト)
[php]
<?php
//前にアップロードされた写真のファイル名
$postPhotoName = $_POST["postPhotoName"];
//古いファイルの削除
if($postPhotoName){
	unlink("./img/".$postPhotoName);
	unlink("./img/thumb-".$postPhotoName);
}
$result = false;
if($_FILES[‘img’][‘name’] == "") {
	die("ファイルがないぜよ。");
}else{
	//アップロードされたファイルの情報を取得
	$fileName = basename(date("U")."-".$_FILES[‘img’][‘name’]);
	$fileType = $_FILES[‘img’][‘type’];
	$fileTmpName = $_FILES[‘img’][‘tmp_name’];
	if(!preg_match("/jpeg/",$fileType)){
		unlink($fileTmpName);
		die( "jpegじゃないぜよ。");
	}else{
		//ファイルの保存
		if (!move_uploaded_file($fileTmpName, ‘./img/’ . $fileName)) {
			die(‘保存にしっぱいしたぜよ。’);
		} else {
			//サムネイル作成
			include(‘class.image.php’);
			list($width, $height, $type, $attr) = getimagesize(‘img/’.$fileName);
			$thumb = new Image(‘img/’.$fileName);
			$thumb->name(‘thumb-‘.basename($fileName,".jpg"));
			if($width>$height){
				if($width > 500) $thumb->width(500);
			}else{
				if($height > 500) $thumb->height(500);
			}
			$thumb->save();
			$result = true;
		}
	}
}
if($result == true){
?>
<img src="<?php echo ‘./img/thumb-‘.$fileName;?>">
<input type="hidden" value="<?php echo $fileName?>" name="postPhotoName" id="postPhotoName">
<?php
}
[/php]
HTML
[html]
<form method="post" enctype="multipart/form-data" action="upload.php">
<input type="file" value="" id="img" name="img" size="50" />
<input type="submit" id="submit" />
<div id="preview"><div>ここにプレビューが表示されます</div></div>
</form>
[/html]
このままつかうのはちょっとあれかもですけど、アイデア次第で色々使い道がありそうです。