画像をアップロードし、その画像をサムネイル表示する
HTML部分
<div class='image-preview-wrapper'> <input type="file" name="cs_regident_image" id="cs_regident_image"> <button type="button" onclick="file_upload()">アップロード</button> <img id="cs_regident" style="height:200px;" /> </div>
JavaScript部分。Ajaxを使ってPHPプログラムに渡してファイルをアップロードする。
<script>
$('#cs_regident_image').change(function(e){
//ファイルオブジェクトを取得する
var file = e.target.files[0];
var reader = new FileReader();
//画像でない場合は処理終了
if(file.type.indexOf("image") < 0){
alert("画像ファイルを指定してください。");
return false;
}
//アップロードした画像を設定する
reader.onload = (function(file){
return function(e){
$("#cs_regident").attr("src", e.target.result);
$("#cs_regident").attr("title", file.name);
};
})(file);
reader.readAsDataURL(file);
});
function file_upload()
{
// フォームデータを取得
var formdata = new FormData($('#form').get(0));
// POSTでアップロード
$.ajax({
url : "http://localhost/wpn/wp-content/..../includes/upload.php",
type : "POST",
data : formdata,
cache : false,
contentType : false,
processData : false,
dataType : "html"
})
.done(function(data, textStatus, jqXHR){
alert(data);
})
.fail(function(XMLHttpRequest, textStatus, errorThrown){
});
}
</script>
PHPファイル「upload.php」
// 一時アップロード先ファイルパス
$file_tmp = $_FILES["cs_regident_image"]["tmp_name"];
// 正式保存先ファイルパス
$file_save = "./upload/" . $_FILES["cs_regident_image"]["name"];
// ファイル移動
if( !move_uploaded_file($file_tmp, $file_save )) {
$err_msg = 'アップロードに失敗しました。';
}
$err_msg = 'アップロードに成功しました。';
echo $file_save;
/*
$result = @move_uploaded_file($file_tmp, $file_save);
if ( $result === true ) {
echo "UPLOAD OK";
} else {
echo $file_save;
}*/
※セキュリティが非常に重要になるので、以下の参考サイトを確認しなければならない。
参考URL
https://qiita.com/yasumodev/items/cffb735f46ffd489a4db
https://thinkit.co.jp/story/2015/06/11/6118


