写真の引っ越しができるようになったのね!
ブログの引っ越しで困っていた写真。
新しい記事は自分の持ってるレンタルサーバから引っ張ってくるようにしたものの、今までのはどうしよう??
どうやって処理するのが一番らくか?考えてたら、今日あっさりお知らせが(笑)
PHP 日付を利用したフォルダ作成(夏休みのプログラム その4)
日付を利用して一意の名前作成
$newName = date("YmdHis"); //20160816081205
名前から年・月を切り出す
//$newName 20160816081205 の場合 $dir1= substr($newName, 0,4); //2016 $dir2= substr($newName, 4,2); //08
フォルダ作成
function makeDir( $newDir ){ //ディレクトリが存在しなければ if( !is_dir( $newDir )){ //サブディレクトリ含めフォルダ作成 return mkdir( $newDir ,0705, true); } return false; }
整理すると、、
$newName = date("YmdHis"); //20160816081205 $dir1= substr($newName, 0,4); //2016 $dir2= substr($newName, 4,2); //08 $newDir = $basePath."/".$dir1."/".$dir2; //http://xxxx/img/2016/08 makeDir( $newDir );
PHP ファイルアップロード(夏休みのプログラム その3)
アップロード側(HTML)
<form action="" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="1回にアップするファイルの最大容量"> <input type="file" id="myFile" name="myFile" accept=".jpg,image/jpeg,image/png"> <p><button type="submit" name="fileupBtn" value="upload">画像アップ</button></p>
ファイル受取側(PHP)
//ファイルアップロード
//$dir 保存先
//$upName は inputタグのname属性 myFile
function upload( $dir, $upName ){
//指定したアップロードファイルが存在するなら
if(isset($_FILES[$upName])){
$fileName = $_FILES[$upName]['name'];
$fileTmpName = $_FILES[$upName]['tmp_name'];
$filePath = $dir."/".$fileName;
$success = @move_uploaded_file($fileTmpName, $filePath);
if( $success){
return $filePath;
}
}//if
return false;
}
PHP 画像のリサイズ (夏休みのプログラム その2)
PHP JPEGとPNG画像をリサイズするプログラムのメモ
繰り返しがちょっとセンスがなくて気持ち悪い、、、
//引数 保存先・新しいファイル名・オリジナル画像ファイル・ リサイズ幅・リサイズ縦・角度(必要な場合) function imageResize($savePath, $newfileName, $image, $maxWidth, $maxHeight, $degrees=0){ //画像のタイプを確認 $imageType = @exif_imagetype($image); $source = false; switch( $imageType){ case IMAGETYPE_JPEG: //元画像jpegの場合 $source = imagecreatefromjpeg($image); break; case IMAGETYPE_PNG: //元画像pngの場合 $source = imagecreatefrompng($image); break; }//switch if( !$source ){ return false; } //画像の幅と高さを取得 $width = ImageSx($source); $height = ImageSy($source); //新しいサイズを作成 //とりあえず現在のサイズをいれておく $newWidth = $width; $newHeight = $height; if($width >= $maxWidth || $height >= $maxHeight ){ if($width == $height) { //幅と高さが同じサイズだったら今回は幅にあわせる $newWidth = $maxWidth; $newHeight = $maxWidth; } else if($width > $height) {//横長の場合 $newWidth = $maxWidth; $newHeight = $height*($maxWidth/$width); } else if($width < $height) {//縦長の場合 $newWidth = $width*($maxHeight/$height); $newHeight = $maxHeight; } } //新しい画像のサイズを決める $resize = imagecreatetruecolor($newWidth , $newHeight); if( $imageType == IMAGETYPE_PNG){ //透過処理 この処理をしておかないと背景が黒くなる imagealphablending($resize, false); imagesavealpha($resize, true); } //イメージの一部をコピー、伸縮 imagecopyresampled($resize, $source,0,0,0,0, $newWidth, $newHeight, $width, $height); //左周り $rotate = imagerotate($resize, $degrees, 0); $newImagePath = $savePath."/".$newfileName; switch( $imageType){ case IMAGETYPE_JPEG; //JPEGで保存 $newImagePath .= ".jpg"; imagejpeg( $rotate, $newImagePath ); break; case IMAGETYPE_PNG; //PNGで保存 $newImagePath .= ".png"; imagepng( $rotate, $newImagePath ); break; }//switch //リソース破棄 imagedestroy($source); imagedestroy($resize); return $newImagePath; }
夏休みのプログラム その1(PHP)
ブログの引っ越しにともない一番困ったのは写真。
のちのちのことを考えて、借りてるレンタルサーバに写真をアップし、そこからひっぱてくることにしました。 レンタルサーバはPHPが利用出来るので、
- 画像アップ(スマホからのアップも考慮)
- 画像を適度な大きさにリサイズし、サムネイルも作成
- リンクしやすいように、コピー用のHTMLタグを表示
- 画像を削除するための管理プログラム作成
- 管理プログラムではサムネイルをクリックしたら元画像をlightboxで表示
などを考えながら作っていたら、1日がかりに、、、
もちろんオリンピック見ながらですが(^^;
細切れになりますが、メモも兼ね、プログラムもそのうち、、