自己想看小说,但是直接在记事本里看密密麻麻的txt实在不舒服,所以写了个小系统放在localhost上。大致来说,就是用<input type=file>控件选择一个txt文件后提交给php,由之读取文件内容然后切割存放进数据库以供后来阅读。现在的问题是,在自己的机器上可以正常执行这个操作,但我把这个系统copy到同学的机器上之后就不行了,打印出来的$_POST['file']显示只有文件名(在自己机器上可以看到包含有完整路径)。我用的IE8,但同学上的FF和IE8都不行。此外,我还想让局域网里的机器也能够连接到这个系统并自由上传,但很显然不能按照本地的方法使用(php会根据传上去的路径在本地而不是上传者的机器上找文件)。这个应该怎么办?

解决方案 »

  1.   


    上传的代码是个很简单的表单<form id="fileupload" action="uploader.php" method="post"><h3>上传书籍</h3><br/>
    <input type="file" name="file" id="file" value="上传txt文件"><br/>
    <input type="text" name="name" id="name" title="输入书名,默认文件名为书名">输入书名<br/>
    <input type="hidden" name="permission" id="permission" value=2>
    <input type="button" value="submit" onclick="this.form.submit()">……
    echo $_POST['file'];// 输出 xxx.txt, 没有路径
    $lenth = 0;
    $string = array();
    $context  = stream_context_create($string);
    $string = file_get_contents($_POST['file'], false, $context, $lenth) or die("Error before get contents");// 在这个地方提示$_POST['file']不对
    $output = explode(chr(13), $string);
    ……
      

  2.   

    <form id="fileupload" action="uploader.php" method="post" enctype="multipart/form-data">
      

  3.   

    用楼上的方法应该可以,
    上传不了是不是因为你的txt大于2M,你改了配置文件,但其他机的没有改
      

  4.   

    看LZ的代码,原来的不算是上传文件,因为需要 enctype="multipart/form-data" ,然后取上传文件信息是用$_FILES而不是$_POSTfile_get_contents中如果只是个文件名,不是HTTP网址的话,取的是本机的这个文件的内容