PHPExcelリーダーがファイルを読み込んでいないようですか?

私はxlsxファイルをsqlite3 dbに解析するために開こうとしています。しかし、私はxlsxファイルを開くことさえできないようです。

これは私のコードです:

<?php

  require_once 'Classes/PHPExcel.php';
  require_once 'Classes/PHPExcel/IOFactory.php';

  error_reporting(E_ALL);

  print "trying to upload";

  $fileName = basename($_FILES['uploadedfile']['name']);
  $target_path = "someDir/";
  $target_path .= $fileName;

  if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) 
  {
    print "Upload Successful";  
    chmod($fileName, 0644);

    $objReader = new PHPExcel_Reader_Excel2007(); 
    $objReader->setReadDataOnly(true);
    $objPHPExcel = $objReader->load($fileName);

    print "still online!";
  }
?>

スクリプトは最後のprint文にはなりません。したがって、PHPExcel APIへの4回の呼び出しでは、どこかのものが混乱してしまいます。しかし、エラーは報告されていません。

何かご意見は?

2
エラー報告が有効になっていますか?
追加された 著者 Sjoerd,
@Niels新しいPHPExcel()は以前のテストのタイプミスです(コメントアウトするのを忘れました、ごめんなさい)。 @Sjoerdエラー報告について、 error_reporting(E_ALL); のほかに何かを設定する必要がありますか?私はPHPに慣れていないので、エラー報告のために何か他のものがないかもしれないと思いますか?そして一般的には、私が言うことができるのは、同じコードがexcel_reader_2
追加された 著者 SaldaVonSchwartz,
場合によっては、私は別のPHPファイルでファイルのアップロードをやっています。それはうまく動作し、ファイルのアップロードはうまくいっていて、$ fileNameは有効なファイルを指しています。
追加された 著者 SaldaVonSchwartz,
@SaldaVonSchwartz実行時に表示されるすべてのエラーを取得する最善の方法は、 error_reporting(-1)です。 ini_set( 'display_errors'、1); あなたがこれを行うと、あなたが以前には得られなかったエラーメッセージが表示されます。
追加された 著者 DaveRandom,
なぜあなたは $ objPHPExcel =新しいPHPExcel(); を作成し、次にこの $ objPHPExcel を上書きしますか?
追加された 著者 Niels,
スクリプトのメモリが不足していますか?スプレッドシートが大きい場合、PHPExcelは大量のメモリを消費する可能性があります。
追加された 著者 richsage,

1 答え

あなたは、スクリプトのパスを基準にしてファイルを読み込もうとしているようですが、実際に別のディレクトリに移動しました。したがって、この行を変更してください:

$objPHPExcel = $objReader->load($fileName);

に:

$objPHPExcel = $objReader->load($target_path);

これは完全パスになります。たとえば、 'someDir/filename.xlsx'です。

$ target_pathも同様に使用するようにchmodの呼び出しを変更したいと思うでしょう。アクセス権を変更するファイルを見つけることはほとんどありません(そうでなければfalseを返します)。

2
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com