- ベストアンサー
ユーザーがCSVファイルを指定して自動的にMySQLに登録される方法とは?
- ユーザーがブラウザからCSVファイルを指定して自動的にMySQLに登録する方法について悩んでいます。PHPでプログラムを書いているのですが、HTMLのinputタグを使用してユーザーにファイルの指定をしてもらいたいです。しかし、変数の受け渡しやファイルの読み込みがうまくいかず困っています。どのようにすれば上手く実装できるでしょうか?
- PHPでプログラムを書いていますが、ユーザーがブラウザからCSVファイルを指定して自動的にMySQLに登録する方法がわかりません。HTMLのinputタグを使用してファイルを指定してもらいたいのですが、ファイルの受け渡しや読み込みが上手くいきません。どのようにすれば実装できるでしょうか?
- PHPを使用している際、ユーザーがブラウザからCSVファイルを指定して自動的にMySQLに登録する方法が分かりません。HTMLのinputタグでファイルを指定してもらうことはできますが、変数の受け渡しやファイルの読み込みが上手くいきません。どのようにすれば実装することができるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ユーザーのローカルファイルをブラウザ経由で抜きたいという話ですか? セキュリティ上無理ですね、早めにあきらめることをお勧めします。 近しいやり方でやるならftpなどでサーバーにアップするなどして 定期処理でmysqlに登録するプログラムを走らせるなどでしょうか より自動にちかくするには場合によってはwsh+IEで処理すれば アイコンワンクリックでなんとかなるかもしれません。
その他の回答 (2)
- honoka-cha
- ベストアンサー率54% (40/73)
> HTMLでinput type="file"で出来ると思いきや、変数の受け渡しができず PHP4とPHP5ではファイル名というかファイルの実体の受け渡し方法が変更になっていたと思います。 move_uploaded_file()関数を使うようにしましょう。 私は以下のコードでcsvファイルアップロードとMySqlテーブル登録できました。PHP5.3.1ですが参考になれば。エラー処理、セキュリティ上の処理はもっと必要ですけど省略してます。 ーーーuploadcsv7.php ここからーーー <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>upload csv</title> </head> <body> <FORM enctype="multipart/form-data" action="uploadcsv7.php" method="POST" > <INPUT type="hidden" name="MAX_FILE_SIZE" value="200000"> アップロードするファイル: <INPUT name="UploadFile" type="file" > <INPUT type="submit" value="Up Load CSV File"> </FORM> <?php // DB 1 $link = mysql_connect("hostname", "username", "password"); mysql_select_db("dbmusic", $link); // File Upload $upload = "D:\\upload\\"; $upload .= $_FILES['UploadFile']['name']; $res = move_uploaded_file($_FILES['UploadFile']['tmp_name'], $upload ); if ( $res ) { print "アップロードに成功しました\n"; $fp = fopen($upload, "r"); while( ! feof($fp) ) { $csv = fgets($fp); $csv_array = explode(",",$csv); // DB 2 $sql = sprintf( "INSERT INTO MusicInfo (poemID, poemString, memberName) VALUES( '%d', '%s', '%s' )", $csv_array[0], $csv_array[1], $csv_array[2] ); mysql_query($sql); } } else { print "アップロードに失敗しました\n"; } ?> </body> </html> ーーーここまでーーー
- hogehoge78
- ベストアンサー率80% (433/539)
<input type="file"> に関してですが、変数の受け渡しが出来ないというのはどういう状況でしょうか。 http://www.php-labo.net/tutorial/php/upload.html こちらのブログが参考になると思いますが、これで受け渡しが不可能であった、ということですか。 「PHP ファイル アップロード」あたりで検索すれば参考になる資料が色々ありますが、いかがでしょうか。
お礼
やはりそうですか。 分かりました。 早速のご回答ありがとうございました。