★
画像をアップロードしましょう。画前回の状態で(画像アップローダー01)で、送信されたファイルはサーバーのキャッシュメモリに保存されたままです。この一時ファイルを移動して保存する場所(アップロード先)をサーバー上に作成します。ここではupload.htmlと同じ場所に「uploads」というディレクトリを作り、その中にファイルを保存します。
●パーミッション(属性)
ディレクトリやファイルに対するアクセス権の設定らしいです。
アクセス権は、
①読み込み(4,r)・・・例えば、abc.textがあったすればそれを開いて見ることができるって感じです。
②書き込み(2,w)・・・abc.textを開いて読むだけではなく書き込み保存できます。
③実行(1,x)・・・あるアプリケーション(※ここではPHP)を実行できるかどうからしいです。
↑図にしてみました。自分も完全に理解できません。とりあえず777は危険ですと覚えておきましょう。
とりあえずファイルの移動の為にupload._image.phpに書き足しましょう。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
</style>
<title>画像ファイアップロード</title>
</head>
<body>
<?php
//ファイルの取り出し
$file_name = $_FILES['filename']['name'];
//ファイル(MIMEタイプの取り出し)
$file_type = $_FILES['filename']['type'];
//一時ファイルの取り出し
$temp_name = $_FILES['filename']['tmp_name'];
//ファイルの容量
$file_size = $_FILES['filename']['size'];
//エラー
$file_error = $_FILES['filename']['error'];
//保存先のディレクトリ
$dir = 'uploads/'; //「ディレクトリ名+/」で記述すること
//保存先のファイル名
$upload_name = $dir . $file_name;
//JPEG形式のファイルをアップロードする
if (($file_type == 'image/jpeg') || ($file_type == 'image/pjpeg') || ($file_type == 'image/gif') || ($file_type == 'image/png')) {
//アップロード
$result = move_uploaded_file($temp_name, $upload_name);
if ($result) {
//アップロードの成功
echo '<p>■アップロード成功</p>';
} else {
//アップロードの失敗
echo '<p>■アップロード失敗</p>';
}
} else {
//JPEG、GIF、PNG以外の形式は画像をアップロードしない
echo '<p>■JPEG、GIF、PNG形式の画像をアップロードしてください。</p>';
}
?>
<p>■画像ファイル:<?php echo $upload_name; ?></p>
<p><img src="<?php echo $upload_name; ?>" width"400" height="300" /></p><p>画像ファイル名:<?php echo $file_name; ?></p>
<p>MIMEタイプ:<?php echo $file_type; ?></p>
<p>一時ファイル:<?php echo $temp_name; ?></p>
<p>データ容量:<?php echo $file_size; ?></p>
<p>データの一時ファイル保存の成否:<?php echo $file_error; ?></p>
</body>
</html>
↑の赤い部分を加えてください。
●論理演算子
①or演算子「||」か「or」
・・・条件を一つ以上満たすもの(※どちらかがtrueの場合)
if (($file_type == image/jpeg) || ($file_type == image/pjpeg))
これだとimage/jpegかimage/pjpegどっちかであればいいと言う事です。
image/pjpegとはよくわかりませんがIEの仕様がこっちみたいです。
本来ならimage/jpegです。
②and演算子「&&」か「and」
・・・条件を全て満たすもの(※両方ともtrueの場合)
(($a)&&($b))
これだとaでありbでなければならないって事です。
③xor演算子「xor」
・・・条件を一つだけ満たす。(※どちらかがtrueであり、両方ともtrueでない場合。わけわからん。)
④!演算子
・・・否定です。(※falseの時)
!$a
ならaでないときです。
●move_upload_file関数
move_upload_file(一時ファイルパス、保存先、ファイルパス)
この関数でファイルの移動ができます。
↑画像のアップロード成功です(画像はクリックで拡大できます。)、uploadsディレクトリに画像が入ってるか確かめてみましょう。
↓久しぶりの先生お勧めのサイトシーイングです。
NIKE Air Jorden2012↑すごい手間のかかるサイトだそうです。作った人達は大変にちがいないそうです。
これはflashじゃなくてjavascriptでつくられています。現時点でjavascriptも将来やらなければと考えたほうがよさそうです。
PR