0

データベースに保存できるように、ローカルの.txtファイルのテキストをPHP変数にキャプチャしようとしています。私は何時間もそこにいて、運がありません。私はほぼすべてを試しましたが、これは私が現在持っているものです。そのほとんどは、デバッグのためにコメント化されています。

現状では、空白のページが表示されるだけで、何もエコーされません。私は何が間違っているのですか?任意の提案をいただければ幸いです。

編集: 更新されたコードを完成させます。エラーが発生すると、12行目に未定義のインデックスに関する通知が表示されます。

<?php
error_reporting(E_ALL); ini_set('display_errors','1');
?>

    <html>
    <head>
    <title>upload file</title>
    </head>
    <body>
    <?php

    $size = $_FILES['file']['size'];
    $filename = $_FILES['file']['tmp_name']; // name of the file

     //$max_filesize = 100000; // Maximum filesize in BYTES
     //$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // Get the extension from the filename.
     //  if($ext = "txt") //check for .txt
     //  die('Only .txt files allowed.');
     //  if($size > $max_filesize) //check file size
     //  die('File is too large');

    if(file_exists($filename)){

    $fp = fopen($filename, "r");
    $str = fread($fp, filesize($filename));
     echo $str;
    fclose($fp); 
     }

    ?>

    </body>
    </html>

そしてアップロードフォーム:

<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
4

2 に答える 2

3

テスト$_FILES['uploadedfile']['tmp_name']-これは、サーバー上に作成された一時ファイルの場所です。$_FILES['uploadedfile']['name']クライアント側でアップロードされたファイルの元の名前が含まれます。

コードを更新します。

$size = $_FILES['file']['size'];
$filename = $_FILES['file']['name'];

$size = $_FILES['uploadedfile']['size'];
$filename = $_FILES['uploadedfile']['tmp_name'];

$_FILES変数のドキュメントは、PHPのマニュアルにあります。PHPでファイルをアップロードするには、このチュートリアルを確認してください。

それとは別に、をに修正$size($filename)filesize($filename)ます。

于 2012-10-30T19:31:42.670 に答える
0

$sizeの内側のfilesizeを使用して読み取ります$str = fread($fp, filesize($filename));

于 2012-10-30T19:31:05.027 に答える