データベース文字列を使用してファイルにアクセスする際の問題

D3181

ルートを再構築した後、Webサーバー上のファイルにアクセスできません。ダウンロードするファイルを再構築した後、アドレスに保存されます:

http://mysite/submission/uploads/test.txt

以前は、次の場所に保存されていました。

http://mysite/uploads/test.txt

したがって、パス/uploads/test.txtは、データベースから読み取るときに機能します。Ivは最近、最初のサンプルに表示されているようにルートを更新し、mongodbデータベースのコンテンツを更新しました。ただし、uploadsフォルダーはrootにあり、download.phpファイルはsubmissionフォルダーにあるため、データベースからのパスは次のようになります。

http://mysite/mydownloadpage/submission/uploads/test.txt

私のデータベースでは、パスへのテキストが次のように正確に含まれています。

submission/uploads/test.txt

ディレクトリをルートに戻すために文字列にプレフィックスを追加しようとしましたが、機能しません。

../submission/uploads/test.txt

これにより、ルートディレクトリを指す代わりに、「..」が含まれるようになります。

データベースからパスを渡されるダウンロード関数は次のとおりです。

function download($path){

if(!file_exists($path)){
die('Error');
}else{
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.basename($path));
header('Content-Type: application/octet-stream');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
ob_start();
flush();
readfile($path);
exit;
}
}
if (isset($_GET['download'])) {
if (!empty($_GET['download'])) {
$file = $_GET['download'];
download($file);
}
}

どんな助けでもいただければ幸いです。

ダレン

了解しました。ようやく並べ替えられてよかったです。一般的な方法は、必要に応じてすべての包含についてグローバルに参照できるROOT/ ROOT_PATH/ etc定数を定義することです。これは通常、ルートindex.phpファイルで次のように実行されます。

DEFINE('ROOT', getcwd());

現在、現在の関数定義にはいくつかの問題があります。引数を使用する場合は、引数を指定する必要があります。これを次のように修正することで解決できます。

function download($file) { ...
                  ^^^^^--- we added this.

ここで、ファイルを定義するときに、絶対パスを指定する必要があります。

$path = ROOT . DIRECTORY_SEPARATOR . $my_path_from_db;

そして、それDIRECTORY_SEPARATORオペレーティングシステムを表す\または/オペレーティングシステムに依存する内部PHP定義定数であることに注意する必要があります:)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

XMLファイルを介してデータベースを埋めてデータにアクセスする際に問題が発生する

分類Dev

インテントを使用して文字列をデータベースに送信する際の問題

分類Dev

リモートYarnクラスターでsparkを使用してS3からファイルにアクセスする際の問題

分類Dev

PhpSpreadsheetを使用してデータ配列をxlsxファイルにエクスポートする際の問題

分類Dev

win32comを使用してExcelファイルにアクセスする際の問題

分類Dev

VisualStudioでVB.NETを使用してローカルSQLデータベースに接続する際の接続文字列の問題

分類Dev

ダンプファイルをredisデータベースにロードする際の問題

分類Dev

ターンベースのマルチプレイヤーでクラスからデータベースにアクセスする際の問題

分類Dev

イテレータの内部で外部データベースにアクセスする際の問題

分類Dev

文字列を使用して連絡先をテキストファイルに保存する際の問題

分類Dev

phpの配列を使用してJsonファイルのデータにアクセスし、htmlファイルにエコーする方法

分類Dev

SpringBootを使用してH2データベースにテーブルを作成する際の問題

分類Dev

CSVからデータベースにインポートしてSqlBulkCopyを使用する際の問題

分類Dev

MySQLdbモジュール(python)を使用してmysqlデータベースに接続する際の問題

分類Dev

アダプターを使用してデータをRecyclerViewにバインドする際の問題。モデルクラスが見えない

分類Dev

Bluetoothコンポーネントを使用してAndroidフォンからシリアルデバイスにデータを転送する際の問題

分類Dev

アプリケーションがデータベースにアクセスしようとしているためにEFツールを使用する際の問題

分類Dev

カスタム比較関数を使用してstd :: sort()を使用してベクトル文字列をソートする際の問題

分類Dev

codeigniterを使用してMYSQLデータベースの配列インデックスを使用してファイルをアップロードする方法

分類Dev

Pythonのジェネレーター関数を使用して出力にアクセスする際の問題

分類Dev

SQLAlchemyとFlaskを使用してHTMLのbackrefパラメーターにアクセスする際の問題

分類Dev

ajaxを使用して画像データをphpファイルに送信する際の問題

分類Dev

mapbox-tile-copyを使用してgeojsonファイルをベクタータイルに変換する際の問題

分類Dev

VisualBasicを使用してデータベースにアクセスするためにcsvファイルをインポートします

分類Dev

PHPを使用してmysqlデータベースにデータを挿入する際の問題

分類Dev

PHPを使用してMYSQLデータベースにデータを挿入する際の問題

分類Dev

AngularjsとSpringBootを使用してデータベースにデータを保存する際の問題

分類Dev

PHPを使用してMySQLデータベースにデータを挿入する際の問題

分類Dev

正規表現でアルファベットセレクターを使用する際の問題

Related 関連記事

  1. 1

    XMLファイルを介してデータベースを埋めてデータにアクセスする際に問題が発生する

  2. 2

    インテントを使用して文字列をデータベースに送信する際の問題

  3. 3

    リモートYarnクラスターでsparkを使用してS3からファイルにアクセスする際の問題

  4. 4

    PhpSpreadsheetを使用してデータ配列をxlsxファイルにエクスポートする際の問題

  5. 5

    win32comを使用してExcelファイルにアクセスする際の問題

  6. 6

    VisualStudioでVB.NETを使用してローカルSQLデータベースに接続する際の接続文字列の問題

  7. 7

    ダンプファイルをredisデータベースにロードする際の問題

  8. 8

    ターンベースのマルチプレイヤーでクラスからデータベースにアクセスする際の問題

  9. 9

    イテレータの内部で外部データベースにアクセスする際の問題

  10. 10

    文字列を使用して連絡先をテキストファイルに保存する際の問題

  11. 11

    phpの配列を使用してJsonファイルのデータにアクセスし、htmlファイルにエコーする方法

  12. 12

    SpringBootを使用してH2データベースにテーブルを作成する際の問題

  13. 13

    CSVからデータベースにインポートしてSqlBulkCopyを使用する際の問題

  14. 14

    MySQLdbモジュール(python)を使用してmysqlデータベースに接続する際の問題

  15. 15

    アダプターを使用してデータをRecyclerViewにバインドする際の問題。モデルクラスが見えない

  16. 16

    Bluetoothコンポーネントを使用してAndroidフォンからシリアルデバイスにデータを転送する際の問題

  17. 17

    アプリケーションがデータベースにアクセスしようとしているためにEFツールを使用する際の問題

  18. 18

    カスタム比較関数を使用してstd :: sort()を使用してベクトル文字列をソートする際の問題

  19. 19

    codeigniterを使用してMYSQLデータベースの配列インデックスを使用してファイルをアップロードする方法

  20. 20

    Pythonのジェネレーター関数を使用して出力にアクセスする際の問題

  21. 21

    SQLAlchemyとFlaskを使用してHTMLのbackrefパラメーターにアクセスする際の問題

  22. 22

    ajaxを使用して画像データをphpファイルに送信する際の問題

  23. 23

    mapbox-tile-copyを使用してgeojsonファイルをベクタータイルに変換する際の問題

  24. 24

    VisualBasicを使用してデータベースにアクセスするためにcsvファイルをインポートします

  25. 25

    PHPを使用してmysqlデータベースにデータを挿入する際の問題

  26. 26

    PHPを使用してMYSQLデータベースにデータを挿入する際の問題

  27. 27

    AngularjsとSpringBootを使用してデータベースにデータを保存する際の問題

  28. 28

    PHPを使用してMySQLデータベースにデータを挿入する際の問題

  29. 29

    正規表現でアルファベットセレクターを使用する際の問題

ホットタグ

アーカイブ