我遇到了我当前网页的第一个程序员留下的代码。他创建了自己的自定义框架。
我的问题是我创建了一个文件导出功能,因为有一个功能,我应该将查询导出到textfile,以便客户端/用户通过强制浏览器下载生成的文件自动下载它:继承我的代码强制下载。
注意:我已经在其他论坛以及Stackoverflow上搜索,但我无法找到答案。这是我目前的代码:
if(!defined('APPLICATION_RUNNING')){
header("HTTP/1.0 404 Not Found");
die('acces denied');
}
if(defined('ANNOUNCE')){
echo "\n<!-- loaded: ".__FILE__." -->\n";
}
if(!class_exists('APP_Ajax')){
class APP_Ajax extends APP_Base_Ajax
{
function textfiles()
{
global $apptemplate, $appform, $appdb;
if(!$appform->form_valid($this->post['formid'])) // if not b\valid form
{
json_return_error(5);
}
else
{
if(!empty($this->post['form'])) //if the post of form is not empty
{
$e = array();
}
else
{
json_return_error(6);//alert if form is empty
}
if(empty($this->post['form']['rowid']))
{
json_return_error(252); // if rowid is empty then raise error
}
else
{
$rets = $this->post['form']['rowid'];
$ids = explode(',',$rets);
foreach ($ids as $kids)
{
$sql = pg_query("SELECT * from tbl_patient WHERE id='$kids'");
$info = pg_fetch_assoc($sql);
$text[] = ucwords($info['firstname']." ".$info['mi']." ".$info['lastname']).",".$info['medicalrecordnumber'].",".$info['referraldate'];
}
$output = implode( "\r\n" , $text );
$randfile = rand(12345689,999999999)."_".date('m-d-Y');
$f = fopen("templates/default/exports/".$randfile.".txt", "w");
fwrite($f, $output);
fclose($f);
$file_name = ABS_PATH.'templates/default/exports/'.$randfile.'.txt';
header('Pragma: public'); // required
header('Expires: 0');// no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Last-Modified: '.gmdate ('D, d M Y H:i:s', filemtime ($file_name)).' GMT');
header('Cache-Control: private',false);
header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($file_name));
header('Connection: close');
readfile($file_name);// push it out
}
}
}
}
上面的代码没有产生错误,在我创建的路径上创建的文件 问题是&#34;没有保存为&#34;或者其他什么,浏览器不下载文件。当我使用httpfox查看标题等等时,查询的结果显示在httpfox内容选项卡上,所以除了我希望浏览器显示下载文件(另存为对话框)以便用户显示错误可以将它保存到那里硬盘..
注意2#:当我创建像Download
这样的下载链接时,当我点击下载链接时,该页面会将我返回到主页面而根本没有下载。
请给我一个关于如何处理这些东西的脚本或建议。先感谢您。
告诉我,如果我在这里遗漏了什么。
哎呀忘了告诉你,我所在的网站不允许外部访问文件以获取安全性,这就是为什么我无法将导出文件链接到其他页面以供下载的原因。 :)