最新のWeb開発のチュートリアル
×

PHP チュートリアル

PHP HOME PHP イントロ PHP インストール PHP 構文 PHP 変数 PHP エコー/印刷 PHP データの種類 PHP ストリング PHP 定数 PHP 演算子 PHP If...Else...Elseif PHP Switch PHP whileループ PHP Forループ PHP 機能 PHP 配列 PHP 配列のソート PHP スーパーグローバル

PHP 取り扱い

PHP フォーム 取り扱い PHP フォーム 検証 PHP フォーム 必須 PHP フォーム URL/E-mail PHP フォーム コンプリート

PHP 高度な

PHP 多次元配列 PHP 日時 PHP 含めます PHP ファイル 取り扱い PHP ファイル オープン/読みます PHP ファイル 作成/書きます PHP ファイル アップロード PHP Cookies PHP Sessions PHP フィルター PHP Filters 高度な PHP エラー 取り扱い PHP 例外

MySQL Database

MySQL データベース MySQL 接続 MySQL Create DB MySQL Create 表 MySQL Insert Data MySQL 最後のIDを取得します MySQL 複数の挿入 MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML パーサー PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX イントロ AJAX PHP AJAX データベース AJAX XML AJAX ライブ検索 AJAX RSSリーダー AJAX 世論調査

PHP Examples

PHP 例 PHP クイズ PHP 証明書

PHP 参照

PHP アレイ PHP カレンダー PHP 日付 PHP ディレクトリ PHP エラー PHP ファイルシステム PHP フィルタ PHP FTP PHP HTTP PHP Libxml PHP 郵便物 PHP 数学 PHP その他 PHP MySQLiを PHP SimpleXML PHP 文字列 PHP XML PHP Zip PHP 時間帯

 

PHP 5ファイルのアップロード


PHPを使用すると、サーバーにファイルをアップロードすることは容易です。

しかし、簡単に危険が来るので、ファイルのアップロードを許可するときは、常に注意してください!


設定"php.ini"ファイルを

まず、PHPはファイルのアップロードを許可するように設定されていることを確認してください。

あなたに"php.ini"ファイル、file_uploadsディレクティブを検索し、オンに設定します。

file_uploads = On

HTMLフォームを作成します。

次に、ユーザーがアップロードしたい画像ファイルを選択できるようにHTMLフォームを作成します。

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

上記のHTMLフォームのために従うべきいくつかのルール:

  • フォームがメソッドを使用していることを確認してください=「ポスト」
  • フォームも必要followingにenctype = "multipart / form-データ":属性を。 これは、フォームを送信するときに使用するコンテンツタイプを指定します

上記の要件がなければ、ファイルのアップロードは動作しません。

注目すべき他の事:

  • type="file"の属性<input>タグでファイル選択制御などの入力フィールドを示す"Browse"ボタン入力コントロールの隣

フォームは、上記と呼ばれるファイルにデータを送る"upload.php"我々が次に作成されます。


ファイルのアップロードPHPスクリプトを作成します。

"upload.php"ファイルは、ファイルをアップロードするためのコードが含まれています。

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
?>

PHPスクリプトは説明しました:

  • $をtarget_dir = "uploads/" -ファイルが置かれようとしているディレクトリを指定します
  • $のTARGET_FILEは、アップロードするファイルのパスを指定します
  • $ uploadOk = 1まだ使用されていません(will be used later)
  • $ imageFileTypeは、ファイルの拡張子を保持しています
  • 画像ファイルは、実際の画像や偽の画像であれば次に、チェック

注意:あなたはと呼ばれる新しいディレクトリを作成する必要があります"uploads"ディレクトリ内の"upload.php"ファイルが存在します。 アップロードされたファイルが保存されます。


ファイルが既に存在するかどうかをチェック

今、私たちはいくつかの制限を追加することができます。

ファイルがすでに存在する場合はまず、我々はチェックします"uploads"フォルダ。 それがない場合は、エラーメッセージが表示され、$ uploadOkは0に設定されています:

// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

ファイルサイズの制限

上記の私たちのHTML形式のファイル入力フィールドの名前は"fileToUpload"

今、私たちは、ファイルのサイズを確認したいです。 ファイルが500キロバイトよりも大きい場合、エラーメッセージが表示され、$ uploadOkは0に設定されています:

 // Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

制限ファイルタイプ

以下のコードは、ユーザーがJPG、JPEG、PNG、およびGIFファイルをアップロードすることができます。 他のすべてのファイルタイプ0に$ uploadOkを設定する前に、エラーメッセージを表示します。

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

完全なファイルのアップロードPHPスクリプト

完全な"upload.php"ファイルは次のようになります。

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

PHPファイルシステムの参照を完了します

ファイルシステム関数の完全なリファレンスについては、当社の完全に行くPHPファイルシステムのリファレンス