PHPでファイルアップロードするところまでは出来た。

CSVファイルのMIMEタイプは判定できない
//DB接続
include "./connect_db.php";
//ファイル名のために日付を表示
$time = date("Y_md_Hi");
echo "現在時刻:" . $time. "<br />";
if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
    //日付でリネームしながらアップロード
    if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "uploads/" . $time . ".csv")) {
    chmod("uploads/" . $time . ".csv", 0644);
    echo $_FILES["upfile"]["name"] . "を" . $time . ".csv" . "というファイル名でアップロードしました。";
  } else {
    echo "ファイルをアップロードできません。";
  }
} else {
  echo "ファイルが選択されていません。";
}
?></p>
<form action="<?php echo $_SERVER&#91;'SCRIPT_NAME'&#93;; ?>" method="post" enctype="multipart/form-data">
  ファイル:<br />
  <input type="file" name="upfile" size="30" /><br />
  <br />
  <input type="submit" value="アップロード" />
</form>

PHPからファイルアップロードした場合、CSVファイルのMIMEタイプは判定できないみたいなので文字コードの厳密な判定やCSVとして正しく読み取れたかどうかなどのチェックをする必要があるみたいよ。

今配列に入れたCSVの内容の表示がガッツリ文字化けしているので強制的にUTF-8に変換するよ。

mojibake

PHP

Posted by bistro