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)to filesize($filename)

于 2012-10-30T19:31:42.670 回答
0

使用 $size 的文件大小,以便读取$str = fread($fp, filesize($filename));

于 2012-10-30T19:31:05.027 回答