sfWidgetFormInputFile()を使用して、MY_PROJECT/WEB/UPLOADS
というフォルダに画像をアップロードしています。そのパスからこれらのファイルをダウンロードするにはどうすればいいですか?アップロードフォルダのパスを取得する方法。また、ファイルをアップロードすると、ファイル名が1f3c6d9bf7b8ebda8b600576c55817c34715a8421
のように変わってしまいます。どのように元の名前でアップロードできますか?前もって感謝します。symfony1.4でアップロードしたファイルをダウンロードする方法
0
A
答えて
2
もっと簡単な方法があります... FieldName
は、フィールドのラクダ名前です(お使いのモデルやフォームクラスにgenerateFieldNameFilename()
機能を置きますどこに画像を保存するか)。
// your form or model class
public function generateImageFilename(sfValidatedFile $file)
{
return $file->getOriginalName();
}
// in your template ($model => model object)
<?php echo link_to($model->getImage(), '/uploads/'.$model->getImage(), array('target' => '_blank')); ?>
// to dispaly the image in the link
<?php echo link_to(image_tag('/uploads/'.$model->getImage()), '/uploads/'.$model->getImage(), array('target' => '_blank')); ?>
これで画像が新しいタブで開きます。
SetEnvIf Request_URI "\.jpg$" requested_jpg=jpg
Header add Content-Disposition "attachment" env=requested_jpg
symfonyはあなたのアップロードしたファイルの名前を変更ちなみにファイル名は、ディレクトリ内で一意である必要がありますので:あなたは(ヘッダモジュールがsudo a2enmod headers
を有効にする必要があります)、それに.htaccess
ファイルを入れて、アップロードのディレクトリにダウンロード画像を強制したい場合元の名前を保持したい場合は、ファイル名を格納するフィールドは一意でなければならず、すべてのモデルにファイルの別々のサブディレクトリが必要です。
2
あなたのような、元のファイル名を取得する必要があります:
$filename = $this->form->getValue('file')->getOriginalName();
$this->exists = file_exists(sfConfig::get('sf_web_dir').$filename);
if (!$this->exists)
$this->form->getValue('file')->save(sfConfig::get('sf_web_dir').$filename);
0
public function executeDownload(sfwebRequest $request)
{
$blog_user = Doctrine_Core::getTable('login')->find($request->getParameter('id'));
//$this->forward404Unless($res);
//$file=$blog_user->getDoc();
//$path=sfConfig::get('sf_upload_dir').'/'.$file;
header('content-type:image/jpg');
header('Content-Description: File Transfer');
//header('Content-Type: application/octet-stream');
header('Accept-Ranges: bytes');
header('Content-Disposition: attachment; filename='.basename($blog_user->getDoc()));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($blog_user->getDoc()));
ob_clean();
flush();
readfile($blog_user->getDoc());
return sfView::NONE;
}
関連する問題
- 1. ファイルをアップロードしてダウンロードする方法
- 2. アップロードする方法タスクとファイルをダウンロード
- 3. Kloudless:ファイルをダウンロード/アップロードする方法
- 4. NAOでファイルをダウンロードしてアップロードする方法
- 5. Cakephp - MeioUpload - アップロードされたファイルをダウンロードする方法
- 6. file_downloads ..アップロードしたファイルをダウンロードしたい
- 7. サーブレットでファイルをアップロードしてダウンロードする
- 8. ウェブサイトにアップロードされたJavaプログラムファイルを使用してファイルをダウンロードする方法
- 9. ディスクに保存しないでzipファイルをダウンロードしてアップロードする方法
- 10. symfony1.4でPropelを使用したsfMelodyPlugin
- 11. 反応したネイティブwebviewからファイルをダウンロードしてアップロードする
- 12. AngularJSで画像をダウンロードしてアップロードする方法
- 13. コードイグナイタを使用してアップロードされたファイルをダウンロードする
- 14. アップロードしたファイルをどのようにダウンロードできますか?
- 15. ファイルのアップロードとダウンロード:
- 16. フォグを使ったファイルのアップロードとダウンロード
- 17. Amazon S3にファイルをアップロードしてダウンロードするためのPHP API
- 18. mgetでダウンロードしたファイルの数を確認する方法は?
- 19. Windows IEでクリックしたときにファイルをダウンロードする方法
- 20. PHP:大きなファイルをアップロードしてダウンロードする最善の方法
- 21. ファイルをアップロードおよびダウンロードするためのjarファイル
- 22. アップロードしたファイルのファイル名を変更する方法は?
- 23. アップロードしたファイルのファイル名をモデルに保存する方法
- 24. CodeIgniterでダウンロード可能なリンクとしてアップロードしたファイル(PDF、DOCなど)を表示する方法
- 25. symfony1.4でmemcacheをインストール
- 26. phpでユーザーがアップロードしたファイルを表示する方法は?
- 27. iOSデスクトップからファイルをアップロード/ダウンロードする
- 28. ASP.NETコアでファイルをダウンロードする方法
- 29. iosでアップロードとダウンロードの速度をプログラムでテストする方法
- 30. WHMCSでファイルをアップロードする方法
ファイルシステムにファイルを保存するにはどのような機能を使用しますか? –