0

meioupload を使用して Cakephp からファイルをアップロードし始めたばかりですが、ダウンロードのコーディング方法がわかりません。

次のコードを使用してみました:

echo $file['Image']['dir'].$file['Image']['filename'];

ただし、コードが間違っているようです。次のように出力されます。

uploads\image\filenamedb_fyp_2.txt 

ファイル db_fyp2.txt をダウンロードするにはどうすればよいですか?

4

3 に答える 3

0

答えてくれてありがとう。

とにかく、私自身の質問に答えるために、さまざまな拡張子のファイルをダウンロードするには、次のコードを使用できます。

Cakephp の Media View の使用 - コントローラーで

public function download($id){



     $this->viewClass = 'Media';
     $this->autoLayout = false;


    $file = $this->Image->findById($id); 
     $link = $file['Image']['dir'];



     $params = array(
     'id' => $file['Image']['filename'],
     'name' => $file['Image']['filename'],
     'download' => true,
     'mimeType' => $file['Image']['mimetype'], 
     'extension' => array('pdf','zip','txt'),
     'path' => $link.DS
     );

    $this->set($params);
于 2012-02-18T01:33:09.653 に答える
0

これを印刷する場所にルートを追加してみてください.URLが指定されている場合にのみ機能します.そして、ここで行っている主な目的は、単に印刷するのではなく、リンクにする必要があることです.

$this->Html->link('Link Name',$path to that file);
于 2012-02-17T11:25:02.497 に答える
0

さて、あなたがアプリに伝えているのは、ファイルパスをエコーすることだけであり、それはまさにそれが行っていることです. ファイルをブラウザーで開くだけの場合は、redirect代わりに次のような制御フローを使用します。

class YourController extends AppController {
    public function upload() {
        // You upload logic here, followed by ...
        $this->redirect($file['Image']['dir'].$file['Image']['filename']);
    }
}

ブラウザーでファイルをダウンロードとして提供する場合は、適切な Content-Dispositionヘッダーを送信します(例 #1 を参照)。

header('Content-Disposition: attachment; filename="' . $file['Image']['filename'] . '"');
readfile($file['Image']['dir'].$file['Image']['filename']);
于 2012-02-17T08:53:36.517 に答える