質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

PHPで、アップロードしたファイルをダウンロードする方法

P0Po
P0Po

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

3回答

0評価

0クリップ

4207閲覧

投稿2016/11/30 08:04

ファイルをアップロードして、それを一覧表示してファイルを選択するとダウンロードするという処理を書きたくて、いろいろネットで調べて書きました。
一覧表示までは出来たのですが、どうもその先のダウンロードが出来ません。
以下は、一覧表示してダウンロードをするコードです。

PHP

<\?php function download_file\(\$path_file\) { /\* ファイルの存在確認 \*/ if \(!file_exists\(\$path_file\)\) { die\("Error: File\("\.\$path_file\."\) does not exist"\); } /\* オープンできるか確認 \*/ if \(!\(\$fp = fopen\(\$path_file, "r"\)\)\) { die\("Error: Cannot open the file\("\.\$path_file\."\)"\); } fclose\(\$fp\); /\* ファイルサイズの確認 \*/ if \(\(\$content_length = filesize\(\$path_file\)\) == 0\) { die\("Error: File size is 0\.\("\.\$path_file\."\)"\); } /\* ダウンロード用のHTTPヘッダ送信 \*/ header\("Content-Disposition: inline; filename=\\""\.basename\(\$path_file\)\."\\""\); header\("Content-Length: "\.\$content_length\); header\("Content-Type: application/octet-stream"\); /\* ファイルを読んで出力 \*/ if \(!readfile\(\$path_file\)\) { die\("Cannot read the file\("\.\$path_file\."\)"\); } } \$filepath = "C:/upload/failename\.txt"; \$fp = fopen\(\$filepath, "r"\); \$array = file\(\$filepath\); foreach \(\$array as \$line\) { list\(\$title, \$file\) = explode\("\\t", trim\(\$line\)\); \$file = 'C:/upload/' \. \$file; if \(file_exists\(\$file\)\) { print '<a href="'\.\$file\.'" onClick="download_file\(\$file\)">' \. \$title \. '</a><br />'; var_dump\(\$file\)\.PHP_EOL; } } fclose\(\$fp\); \?>

僕の考えでは、onClickでファイルパス$fileを引数として関数download_fileに渡しているのですが、これでは出来ないのでしょうか?

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

zico_teratail
zico_teratail

2016/11/30 08:09

「ダウンロードが出来ません」では回答しようがありません。具体的に何をどうやったらどうダメだったのか、どういうエラー文が表示されたのかなどを書いてください。
P0Po
P0Po

2016/11/30 08:12

一覧をクリックしても何も起こらないのです。特にエラーが出るわけでもありません。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。