English 中文(简体)
遵循代码突然中断数据库
原标题:sudden database disconnection in following code
  • 时间:2009-10-24 04:44:47
  •  标签:

我正在记录用户使用以下代码下载具体档案的时间。 然而,在这项法典中,最初的下载时间正在临近,但后来又中断了客户和服务器之间的数据基连接。 如果我删除<代码>exit(如上所示),所有材料都会被罚款,但被下载的档案可以被腐蚀或损坏。

任何人能否检查这一法典,并解释其中的错误。 我认为,问题在于撤离,但我可以做些什么,而不是撤出?

<?php

$f_name = $_POST["fn"];

$file = "../mt/sites/default/files/ourfiles/$f_name";

if (file_exists($file)) {
   header( Content-Description: File Transfer );
    header( Content-Type: application/octet-stream );
    header( Content-Disposition: attachment; filename= .basename($file));
    header( Content-Transfer-Encoding: binary );
   header( Expires: 0 );
    header( Cache-Control: must-revalidate, post-check=0, pre-check=0 );
    header( Pragma: public );
    header( Content-Length:   . filesize($file));
  //ob_clean();
  // flush();
    readfile($file);
  //  exit;
}
$con = mysql_connect("localhost","mt","mt");
if (!$con) {
  die( Could not connect:   . mysql_error());
} else {
  echo "Connected";
}

// Create table
mysql_select_db("mt", $con);

mysql_query("INSERT INTO down_time (FileName,DateTime)
VALUES ( ".$f_name." ,NOW())");
mysql_close($con);

?>
问题回答

如果在大型文档和(或)缓慢的链接上出现这种情况,则试图在<条码>上封顶_execution_time,在<条码>.ini上或通过使用<条码>的文字进行。

如果你包括出国,那么你的法典就没有达到把档案名称插入 d的地步。

如果你不包括撤离,你就会把档案内容寄给它,并将“电解”寄给它,因此档案必须腐败。

也许你可以试图在你干的 around子上 ob起和肥胖症:。 http://php.net/manual/en/Function.ob-start.php

这阻止了任何产品被送至产出中,因此,你不必使用退款,但你在档案之后没有被送往产出,因此没有腐败。

例如:

    readfile($file);
}
ob_start();
$con = mysql_connect("localhost","mt","mt");
//all the DB stuff
mysql_close($con);
ob_end_clean();
?>

你们可以包括刚确定下来的 ob幕之后的出走,但这应该只是罚款。

Try:

<?php
$f_name = $_POST["fn"];
$file = "../mt/sites/default/files/ourfiles/$f_name";

if (!file_exists($file)) { die( File not found ); }

if (!$con = mysql_connect("localhost","mt","mt")) { die(mysql_error()); }
if (!mysql_select_db("mt")) { die(mysql_error()); }
$q = "INSERT INTO `down_time` (`FileName`, `DateTime`) VALUES ( "
   . mysql_real_escape_string($f_name) . " ,NOW())";
if (!mysql_query($q)) { die(mysql_error()); }

header( Content-Description: File Transfer );
header( Content-Type: application/octet-stream );
header( Content-Disposition: attachment; filename= .basename($file));
header( Content-Transfer-Encoding: binary );
header( Content-Length:   . filesize($file));
header( Expires: 0 );
header( Cache-Control: must-revalidate, post-check=0, pre-check=0 );
header( Pragma: public );
readfile($file);




相关问题
热门标签