2016-10-04 14 views
0

データベースに10k +データをアップロードしようとしています(PHPとMySQLを使用しています)。しかし、ファイルが大きすぎるようです。私はファイルのサイズを約9300レコードに縮小するとうまくいきますが、それ以上では私のコードが次の行で失敗するようです。$excelReader = PHPExcel_IOFactory::createReaderForFile($tmpfname); 私のコードのスニペットを含んでいます(私はこの質問に関連していると思います) 。私はupload_max_filesize=124Mpost_max_size=124も持っています。何が問題なの?大きなファイルをインポートできませんPHP

<?php 
     $tmpfname = $_FILES['file_save']['tmp_name']; 
    echo "0"; 
     $excelReader = PHPExcel_IOFactory::createReaderForFile($tmpfname); 
echo "1"; 
     $excelObj = $excelReader->load($tmpfname); 
     echo "2"; 
     $worksheet = $excelObj->getSheet(0); 
     echo "3"; 
     $lastRow = $worksheet->getHighestRow(); 

    ?> 
+0

質問はあなたが得るエラーです。 httpサーバのエラーログファイルを見てください。ほとんどの場合、メモリが足りなくなります。または、設定された制限時間を過ぎている可能性があります。 – arkascha

+0

@arkascha申し訳ありませんが、私の知らないメッセージはどこにありますか? – Bobby

+0

以下のリンクをご利用ください。 http://stackoverflow.com/questions/23869743/how-to-import-large-excel-file-to-mysql-database-using-phpありがとうございました –

答えて

0

このリンクは、次のとおりです。http://www.ozerov.de/bigdump/usage/

  1. ダウンロードし、お使いのPC上でbigdump.zipを解凍します。
  2. bigdump.phpテキストエディタで、データベース構成とダンプファイルのエンコーディングを調整します。
  3. ダンプに "DROP TABLE"(phpMyAdminを使用)が含まれていない場合は、ターゲットデータベースの古いテーブルを削除してください。
  4. は、Webサーバー上で(例えばダンプ
  5. アップロードbigdump.phpと作業ディレクトリにダンプファイル(* .SQLまたは* .gzが)FTP経由での作業ディレクトリを作成します(の世話をしますTEXT bigdump.phpdump.sqlためモードのアップロードはなく dump.gz ためBINARYモードMSのWindowsからアップロードする場合)。
  6. bigdump.phpをウェブブラウザからhttp://www.yourdomain.com/dump/bigdump.phpのようなURLで実行してください。
  7. 作業ディレクトリのリストからインポートするファイルを選択できます。開始するには、[インポートを開始]をクリックします。
  8. ブラウザでJavaScriptが有効になっている場合、BigDumpは自動的に次のインポートセッションを開始します。
  9. リラックスしてスクリプトが終了するのを待ちます。ブラウザウィンドウを閉じないでください!
  10. 重要:bigdump.phpを削除し、ダンプファイルをWebサーバーから削除してください。
+0

これはおそらく可能ですが、問題は_why_ですか?簡単に問題を解決し、画像をアップロードして処理するのはなぜですか?なぜ、安全でないFTPサーバーを追加インストール、構成、使用したいのですか?なぜファイルのアップロードと同じような何かのために、任意の外部ソリューションに頼るのはなぜですか? – arkascha