この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:guest
更新日時:2017-08-10 17:57:40

タイトル: ファイルのアップロード方法

以下にファイルのアップロード処理の例を記載する。

【index.php】    

<html>

    <body>

        <!-- ファイル送信の際は「enctype="multipart/form-data"」を指定する必要がある。-->

        <form method="POST" action="testUpload.php" enctype="multipart/form-data">

            <!-- ファイル参照ボタン -->

            <input type="file" name="uploadFile"/>

            <!-- アップロードボタン -->

            <input type="submit" value="アップロード"/>

        </form>

    </body>

</html>

 

「ファイルを選択」ボタンで何かしらのファイルを選択して「アップロード」ボタンを押す。

 

【testUpload.php】

<html>

    <body>

        <?php

        //ファイル名取得

        $fileName = $_FILES['uploadFile']['name'];
        

        //コンテンツタイプ取得

        $fileType = $_FILES['uploadFile']['type'];

 

        //サイズ取得

        $fileSize = $_FILES['uploadFile']['size'];

 

        //一時ファイル名取得

        $fileTemp = $_FILES['uploadFile']['tmp_name'];

 

        print "ファイル名は $fileName です。";

        print "<br />";

        
        print "ファイルのコンテンツタイプは $fileType です。";

        print "<br />";

 

        print "ファイルのサイズは $fileSize です。";

        print "<br />";

 

        print "一時ファイル名は $fileTemp です。";

        print "<br />";

        ?>

    </body>

</html>

 

PHPはファイルをサーバ側に転送すると、一時フォルダにファイルが作成される。

サーバ側でファイル操作をしたい場合はこの一時ファイルに対して操作をする。

例えば、以下の関数を使用すれば一時ファイルを任意のディレクトリに移動させることができる。

    move_uploaded_file($filename, $destination)

        $filename:一時ファイル名

        $destination:保存先ディレクトリ

 

■アップロードの設定について

php.iniファイルでアップロードに関する設定ができる。

以下、php.iniから抜粋。

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads=On ※ファイルアップロードの可能/不可能を設定する。

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir="C:\~\xampp\tmp" ※アップロードファイルの一時ディレクトリを指定する。

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize=2M ※アップロードファイルの最大サイズを指定する。

; Maximum number of files that can be uploaded via a single request
max_file_uploads=20 ※アップロードファイルの最大数を指定する。


//TODO エラーハンドリングの記載をお願いします。