<?php
foreach ($courserows AS $courserow) {
echo " <tr>";
echo '<td>' . $courserow['Name'] . '</td>';
echo '<td>' . $courserow['Description'] . '</td>';
?>
<td>
<a href='level-details.php?LId=<?php echo $onecourse['levelid'];?> &download' class='btn btn-success'>
تحميل <i class="fa fa-download" aria-hidden="true"></i>
</a>
</td>
<?php
echo "</tr>";
// download file
if (isset($_GET['download'])) {
$file = 'material/' . $courserow['file'];
echo $file;
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
}
}
?>
0
A
答えて
1
ファイルダウンロードコードをファイルに書き込む必要があります。 しかし、あなたのコードごとに、あなたはアンカータグにファイル名を渡し、$ _GET
<?php foreach ($courserows AS $courserow){
echo " <tr>";
echo '<td>'.$courserow['Name'].'</td>';
echo '<td>'.$courserow['Description'].'</td>';
?>
<td>
<a href='level-details.php?file=<?php echo $onecourse['file'];?>&download' class='btn btn-success'>تحميل <i class="fa fa-download" aria-hidden="true"></i></a>
</td>
<?php
echo "</tr>";
// download file
if (isset($_GET['download'])) {
$file = 'material/' . $_GET['file'];
echo $file;
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
}
foreachループの外にファイルのダウンロードコードを記述することもその優れたEDITを使用して、それを受信する必要があります。
// download file
if (isset($_GET['download'])) {
$file = 'material/' . $_GET['file'];
echo $file;
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
}
foreach ($courserows AS $courserow){
echo " <tr>";
echo '<td>'.$courserow['Name'].'</td>';
echo '<td>'.$courserow['Description'].'</td>';
?>
<td>
<a href='level-details.php?file=<?php echo $onecourse['file'];?>&download' class='btn btn-success'>تحميل <i class="fa fa-download" aria-hidden="true"></i></a>
</td>
<?php
echo "</tr>";
0
実際にファイルをダウンロードとして出力するコードは、foreachループ内にあります。チェックif (isset($_GET['download']))
が合格した場合は、最初の反復でそれを行い、その反復でファイルを出力します。これを修正する方法の1つは、チェックを次のように拡張することです:
if (isset($_GET['download']) && $_GET['download'] == $courserow['file'])
関連する問題
- 1. php同じPHPファイルのアクションを得る
- 2. PHPダウンロードページ
- 3. PHPページの空白ページとオンローカル同じスクリプトのダウンロードページ
- 4. PHPスクリプトMySQLに同じIDを追加し続ける
- 5. テクニカルPHP - ブレークして同じループで続ける
- 6. PHPを使用してファイルをアップロード中にUPLOAD_ERR_NO_TMP_DIRを取得し続ける
- 7. PHP致命的なエラーは、私は同じエラーを取得し続けるサイトは
- 8. Javaストリーム - 連続する同じフィールドのオブジェクトを取得する
- 9. Bitbucketプルリクエストビルダープラグインが同じコミットビルドをトリガし続ける
- 10. Androidスピナーが同じ値を追加し続ける
- 11. ステートメントが同じ結果を表示し続ける場合 - JQuery
- 12. 同じcsvファイルに書き続けるには?
- 13. モジュールの複数のアーティファクトが同じファイルに取得される
- 14. SNS Webhookは同じリクエストを繰り返し受け取り続けます
- 15. 構文を取得し続けるシンプルなBisonファイル1.1エラー
- 16. mysqlが同じテーブルを2回続けて残しました
- 17. 同じC++エラーが発生し続ける
- 18. 同じデータセットのテスト精度が変化し続ける
- 19. アンドロイドHttpURLConnectionを取得し続ける302
- 20. ArrayIndexOutOfBoundsExceptionを取得し続ける
- 21. Springでjava.lang.NoClassDefFoundErrorを取得し続ける
- 22. python requests.get()401を取得し続ける
- 23. C#で同じようにPHPハッシュを取得するには
- 24. 同じファイルのPhp/Mysqlマルチクエリ
- 25. 2つの異なる形式からデータを取得し、同じ表の行を続ける
- 26. のpython:ファイルのパスを取得し、同じディレクトリに
- 27. JQueryを使用して、同じPHPパラメータを持つ同じPHPファイルのAJAX XML結果が異なる
- 28. Java - 同じパッケージからファイルを取得する
- 29. フォームの入力をPHPで取得し、同じPHPファイルで使用できますか?
- 30. PHPファイルを取得する方法incファイルと同じことをするには?