忍者ブログ

おやっさんのWEBサイト制作への道

WEBサイト制作ど素人のおやっさんが、HTML、CSS、PHPなど学んでいく技術ブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PHP007(画像アップローダー02 パーミッション,論理演算子,move_upload_file() )

画像をアップロードしましょう。
画前回の状態で(画像アップローダー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

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

フリーエリア

にほんブログ村 IT技術ブログ HTML/CSSへ にほんブログ村 IT技術ブログ PHPへ

最新コメント

[11/23 テスト]

プロフィール

HN:
おやっさん
性別:
非公開

バーコード

ブログ内検索

P R

忍者ツールズプロフィール

忍者ツールズプロフィールは終了しました

カウンター