Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

ファイル操作

ファイル操作について

テキストファイルのアップロード- (1)

ファイル送信フォーム

テキストファイルのアップロードを行うため、いくつか準備を行います。まずは、ファイル送信フォームを作成します。

ファイル送信フォームのソース
<html>
    <head>
    <meta http-equiv="Content-Language" content="ja">
    <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
    <title>送信ファイル</title>
    </head>
    <body>
    <form method="POST" enctype="multipart/form-data" action="reception.php">
    <p>送信ファイル:<input type="file" name="userfile" size="40"> <input type="submit" value="送信" name="up"></p>
    </form>
    </body>
    </html>
実行結果
フォーム

上記のフォームは、HTMLで作成されたページです。今回はファイルを送信するために、各属性を以下の通りに指定しました。

enctype属性
enctype属性に「multipart/form-data」を指定することで、フォームからテキストファイルや画像ファイルなどのデータを送信することができます。
action属性
フォームから送信されたデータを処理するスクリプトを指定します。今回は、「reception.php」という名前のphpファイルを使います。
method属性
method属性には「注)POST」を指定します。「注)GET」では、送信できるデータに上限があるため、テスト以外の時は「POST」にしてください。

注)POST、GETについては、「フォームへの埋め込み」の「データの渡し方を指定する」で説明します。

type属性
type属性に「file」を指定すると、ファイルを参照するための「参照」ボタンが自動的に追加されます。
ファイル受信スクリプト

前章のaction属性で指定した「reception.php」ファイルを作成します。

<?php
    if( !is_uploaded_file( $_FILES[ 'userfile' ][ 'tmp_name' ] ) ) {

        echo "ファイルを保存できませんでした!";
        exit;

    } else {

        copy( $_FILES[ 'userfile' ][ 'tmp_name' ], "c:¥template¥upload.txt" );
    }
?>

<html>
<head>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>アップロードファイルの保存</title>
</head>
<body>
<table border="1" width="300">
    <tr>
        <td width="150" align="right">ファイル名:</td>
        <td width="150"><? echo $_FILES['userfile']['name']; ?></td>
    </tr>
    <tr>
        <td width="150" align="right">ファイルサイズ:</td>
        <td width="150"><? echo $_FILES['userfile']['size']; ?></td>
    </tr>
    <tr>
        <td width="150" align="right">MIMEタイプ:</td>
        <td width="150"><? echo $_FILES['userfile']['type']; ?></td>
        </tr>
</table>
</body>
</html>

今回は、受信したデータを「upload.txt」というテキストファイルに保存して、先に作成したローカルディスク(C:)直下のtemplateディレクトリに配置します。

ファイル送信フォームから送信されたファイルは、マシン(サーバを利用する場合はサーバ)の一時ディレクトリに保存されます。ただし、この一時ファイルはスクリプトの実行終了後に自動的に削除されます。

実際にテキストファイルのアップロードを行ってみます。

  1. ローカルディスク(C:)直下のtemplateディレクトリに、「upload.txt」というテキストファイルを作成します。
  2. ファイル送信フォームで、送信ファイル「C:\template\upload.txt」を参照します。
  3. 送信ボタンをクリックして、確認メッセージが表示されればテキストファイルのアップロード完成です。
  4. ローカルディスク(C:)直下のtemplateディレクトリに、「upload.txt」が作成されているか確認してみましょう。
ファイル送信フォーム
upload.txt
確認メッセージ
up-table
ローカルディスク(C:)直下のtemplateに保存されたファイル
templateに保存されたファイル

確認メッセージには、受信ファイルの「ファイル名」、「サイズ」、「注)MIMEタイプ」を表示しています。これらの値は変数を指定するだけで取得できます。

取得値変数名
ファイル名$textfile_name
サイズ$textfile_size
MIMEタイプ$textfile_type
注)MIMEタイプとは・・・
Webの世界では拡張子という概念と、もうひとつ「MIMEタイプ」という概念があります。MIMEタイプとは「タイプ名/サブタイプ名」の形式の文字列で、WEBサーバーとWEBブラウザの間はこのMIMEタイプを用いてデータの形式を指定しています。
MIMEタイプ一覧
ファイル形式一般的な拡張子MIMEタイプ
テキスト.txttext/plain
HTML文書.htm .htmltext/html
XML文書.xmltext/xml
JavaScript.jstext/javascript
CSS.csstext/css
GIF画像.gifimage/gif
JPEG画像.jpg .jpegimage/jpeg
Word文書.docapplication/msword
PDF文書.pdfapplication/pdf