こんにちは、ファイルのダウンロードを作成する必要があります。ダウンロード用の入力フォームとフォームの検証、および dB の挿入はすべて同じページにあります。フォームが送信された場合、ファイルのダウンロードは、[名前を付けて保存] ウィンドウで自動的にトリガーされる必要があります。私は次のようにコードを書きました:
if(isset($_POST['submit'])){
$u=$_POST['uname'];
/*similarly getting all posted data*/
echo '<br><b>'.JText::_( 'Thank you for submitting your details...' ).'</b>';
$db =& JFactory::getDBO();
$query = "/*db inserting query*/";
$db->setQuery( $query );
$db->query();
$filee= basename($path); /*$path contains value form $_POST*/
$full='http://localhost/joomla/images/uploads/'.$filee;
?>
<br><b>
<span>If the download does not start automatically in a few seconds, <a href="<?php echo JURI::base(); ?>/images/myfile/<?php echo $filee;?>" target="_blank"><b> Click this link</b></a></span></b>
<?php
header('Content-Description:File Transfer');
header("Content-type:application/pdf");
header("Content-type:application/zip");
header("Content-type:image/jpeg");
header("Content-type:image/png");
header("Content-type:application/msword");
header("Content-Disposition: attachment; filename=".$filee."");
header("Cache-control: private");
readfile($full);
}
else{ code for printing fill up form}
ダウンロードする前に「送信してくれてありがとう..」などのメッセージを印刷する必要がありますが、記入フォームを送信すると、上記のテキストが表示されずにダウンロードが開始されます。しばらく待ってからダウンロードするにはどうすればよいですか?