用于书城中下载TXT全文其中有若干个txt文件,现在用户点击下载,自动把所有TXT合并成一个TXT下载给用户。
但是不能在自己服务器上面生成合并好的txt,这样太占空间。看了半天的书,没摸到门头。请高手指教!

解决方案 »

  1.   

    falsh似乎可以实现。不过这最好在服务器端进行,至于你说的合并,其实轮流输出txt文件内容就可以
      

  2.   

    这样行不行,把所有txt的内容取出来,然后再写到一个txt文件
      

  3.   

    打好header(Content-Type)和header(Content-disposition),然后把N个文件顺序echo出去即可。
      

  4.   

    肯定是色情小说!
    先把.txt变成.htm文件. 然后用HTML的iframe就把它们拼凑成一个完整的网页.其实网民自己也会手工合并.
      

  5.   


    请问具体如何实现呢? 碰到跟LZ一样的问题好像下面的代码可以,用流输出,具体我没测试过,LZ看看吧,有时间我再测试下,可能只要将 
    print fread($fp, $chunk); 循环输出就可以了,外面再套一个读取数据表的循环 function sendFile($file,$mime, $overrideFileName=''){
    global $vm_mainframe;
    // send headers
    header("Content-Type: $mime");

    list($start,$len) = vmConnector::http_rangeRequest(filesize($file));

    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Accept-Ranges: bytes'); //application mime type is downloadable
    if(strtolower(substr($mime,0,11)) == 'application'){
    if( $overrideFileName == '') {
    $filename = basename($file);
    } else {
    $filename = $overrideFileName;
    }
    header('Content-Disposition: attachment; filename="'.$filename.'";');
    }

    $chunksize = 1*(1024*1024);
    // send file contents
    $fp = @fopen($file,"rb");
    if($fp){
    fseek($fp,$start); //seek to start of range $chunk = ($len > $chunksize) ? $chunksize : $len;
    while (!feof($fp) && $chunk > 0) {
    @set_time_limit(0); // large files can take a lot of time
    print fread($fp, $chunk);
    flush();
    $len -= $chunk;
    $chunk = ($len > $chunksize) ? $chunksize : $len;
    }
    fclose($fp);
    }else{
    header("HTTP/1.0 500 Internal Server Error");
    print "Could not read $file - bad permissions?";
    $vm_mainframe->close(true);
    }
    }