Heim > Backend-Entwicklung > PHP-Tutorial > Das Problem beim Herunterladen der Header-Implementierungsdatei

Das Problem beim Herunterladen der Header-Implementierungsdatei

WBOY
Freigeben: 2023-03-01 20:38:02
Original
1368 Leute haben es durchsucht

Sie müssen auf die Schaltfläche klicken, um die Informationen zu erhalten und den Inhalt in Form einer Datei herunterzuladen.
Aber jetzt öffnet ein Klick auf die Schaltfläche ein neues Fenster und zeigt den Inhalt an, anstatt ein Download-Fenster aufzurufen.
Der Code lautet wie folgt:

<code>$filename = $this->input->cookie('merchant_id');
$timestamp = date("YmdHis",time());
$filename .= $timestamp.'.'.$fileType;

$title = mb_convert_encoding($title,'gbk','utf-8');

header('Content-type: application/octet-stream');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Content-Disposition: attachment; filename=' . $filename);
echo $title;

$ret = $this->download_model->QueryList($Req, $Resp);
$content = $this->GetDownLoadContentNew($ret['bill_list'], $fileType);
echo $content;
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Unter anderem formatiert GetDownLoadContentNew den Inhalt entsprechend.
Sie wissen nicht, was los ist oder haben nichts bemerkt? Ich hoffe, Sie können mir helfen, einen Blick darauf zu werfen, danke. (Der Dateityp ist csv oder txt, was in verschiedenen Browsern gleich ist, aber den Download nicht auslösen kann)

Antwortinhalt:

Sie müssen auf die Schaltfläche klicken, um die Informationen zu erhalten und den Inhalt in Form einer Datei herunterzuladen.
Aber jetzt öffnet das Klicken auf die Schaltfläche ein neues Fenster und zeigt den Inhalt an, anstatt ein Download-Fenster aufzurufen.
Der Code lautet wie folgt:

<code>$filename = $this->input->cookie('merchant_id');
$timestamp = date("YmdHis",time());
$filename .= $timestamp.'.'.$fileType;

$title = mb_convert_encoding($title,'gbk','utf-8');

header('Content-type: application/octet-stream');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Content-Disposition: attachment; filename=' . $filename);
echo $title;

$ret = $this->download_model->QueryList($Req, $Resp);
$content = $this->GetDownLoadContentNew($ret['bill_list'], $fileType);
echo $content;
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Unter anderem formatiert GetDownLoadContentNew den Inhalt entsprechend.
Sie wissen nicht, was los ist oder haben nichts bemerkt? Ich hoffe, Sie können mir helfen, einen Blick darauf zu werfen, danke. (Der Dateityp ist csv oder txt, was in verschiedenen Browsern gleich ist, aber den Download nicht auslösen kann)

<code>/**
  * 强制下载文件 
  * @param string $file 文件路径 
*/
function force_download($file){ 
    if ((isset($file)) && (file_exists($file))) {
        header("Content-length: ".filesize($file)); 
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment;filename="'.basename($file).'"'); 
        readfile($file); } 
    else { 
        echo "No file selected"; 
    }
}
//使用示例
force_download('./test.jpg');</code>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage