0
0

More than 1 year has passed since last update.

LINEトーク履歴解析アプリ開発①

Posted at

前回の記事より、今回は一つ目の処理であるスマホからエクスポートしたテキストファイルをフォームからアップロードについての記事だ

テキストファイルのアップローダー作成

投稿フォームはPHPで作る
PHPのインストール方法はこちらを参考にされたし

手順

①ディレクトリを作成
②投稿用フォーム、txt_form.phpを作成・編集
③投稿後の処理をする, txt_post.phpを作成・編集

構造は以下に

/save
|- txt_form.php
|- txt_post.php
|- アップロードされた.txt

ディレクトリ作成

PHPファイル、およびアップロードされたファイルを保存するディレクトリを作成する

筆者はドキュメントルート下にsaveというディレクトリを作成し、そこにPHPファイルとアップロードされたテキストファイルを保存する

$sudo mkdir save

txt_form.phpの編集

txt_form.phpに記述する

txt_form.php
<!DOCKTYPE html>
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=yes" />
<title>暫定版LINE解析アプリ</title>
</head>
<body>
 
<form action="txt_post.php" method="POST" enctype="multipart/form-data">
    <p>
        <input type="file" name="txt">
    </p>
    <p>
        <input type="submit" value="送信する">
    </p>
</form>
 
</body>
</html>

スマホ・パソコンでも最低限見やすい(レスポンシブ対応)ページになっている

パソコン↓
image.png

スマホ↓

txt_post.phpの編集

txt_post.php
<?php
        ini_set("display_errors", 1);
        error_reporting(E_ALL);
        //ファイルが送信されていない場合はエラー処理
        if(!isset($_FILES['txt'])){
            echo 'ファイルが送信されていません。';
            exit;
        }
 
        $save = '../save/' . basename($_FILES['txt']['name']);
 
        //move_uploaded_fileで、一時ファイルを保存先ディレクトリに移動させる
        if(move_uploaded_file($_FILES['txt']['tmp_name'], $save)){
           echo 'アップロード成功!';
        }else{
           echo 'アップロード失敗!';
           exit;
        }
?>

$save変数に、アップロードされたテキストファイルを保存するディレクトリのパスを代入する

またbasenameを使うことにより、/var/www/html/save/txt_post.phpに直にアクセスされた場合は「ファイルが送信されていません」と出力するようになっている

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0