ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 12875


Ignore:
Timestamp:
Sep 13, 2009, 2:08:45 AM (13 years ago)
Author:
urabe
Message:

#3309 Added file upload monitoring for backend

Location:
OpenPNE3/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE3/trunk/apps/pc_backend/modules/monitoringFunction/actions/actions.class.php

    r12874 r12875  
    3737    $params = $request->getParameter('page', 1);
    3838    $this->pager = Doctrine::getTable('File')
    39       ->getImageFiles($params);
     39      ->getImageFilePager($params);
    4040  }
    4141
     42
    4243 /**
    43   * Executes adminUser action
     44  * Executes fileDelete action
    4445  *
    4546  * @param sfRequest $request A request object
     
    4748  public function executeDelete(sfWebRequest $request)
    4849  {
    49     $this->image = Doctrine::getTable('File')->find($request->getParameter('id'));
     50    $this->image = Doctrine::getTable('File')
     51      ->find($request->getParameter('id'));
    5052    $this->forward404Unless($this->image);
    5153
     
    5557      (
    5658        'notice',
    57         sfContext::getInstance()->getI18N()->__('画像の削除が完了しました')
     59        sfContext::getInstance()->getI18N()
     60          ->__('画像の削除が完了しました')
    5861      );
    5962      $this->redirect('monitoringFunction/list');
    6063    }
    6164  }
     65
    6266 /**
    63   * Executes deleteUser action
     67  * Executes editImage action
    6468  *
    6569  * @param sfRequest $request A request object
     
    7175    if ($request->isMethod(sfWebRequest::POST))
    7276    {
    73         $this->form->bindAndSave(
     77        $this->form->bindAndSave
     78        (
    7479          $request->getParameter('image'),
    7580          $request->getFiles('image')
     
    7883        (
    7984          'notice',
    80           sfContext::getInstance()->getI18N()->__('画像の追加が完了しました')
     85          sfContext::getInstance()->getI18N()
     86            ->__('画像の追加が完了しました')
    8187        );
    8288        $this->redirect('monitoringFunction/list');
    8389    }
    8490  }
     91
     92 /**
     93  * Executes fileList action
     94  *
     95  * @param sfRequest $request A request object
     96  */
     97  public function executeFileList(sfWebRequest $request)
     98  {
     99    $params = $request->getParameter('page', 1);
     100    $this->pager = Doctrine::getTable('File')
     101      ->getFilePager($params);
     102  }
     103
     104 /**
     105  * Executes fileDelete action
     106  *
     107  * @param sfRequest $request A request object
     108  */
     109  public function executeDeleteFile(sfWebRequest $request)
     110  {
     111    $this->file = Doctrine::getTable('File')
     112      ->find($request->getParameter('id'));
     113
     114    if ($request->isMethod(sfWebRequest::POST)) {
     115      $this->file->delete();
     116      $this->getUser()->setFlash
     117      (
     118        'notice',
     119        sfContext::getInstance()->getI18N()
     120          ->__('ファイルの削除が完了しました')
     121      );
     122      $this->redirect('monitoringFunction/fileList');
     123    }
     124  }
     125
     126 /**
     127  * Executes downloadFile action
     128  *
     129  * @param sfRequest $request A request object
     130  */
     131  public function executeDownloadFile(sfWebRequest $request)
     132  {
     133    $this->file = Doctrine::getTable('File')
     134      ->find($request->getParameter('id'));
     135    $this->fileBin = Doctrine::getTable('FileBin')
     136      ->find($request->getParameter('id'));
     137    $original_filename = $this->file->getOriginalFilename();
     138    if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {
     139      $original_filename = mb_convert_encoding($original_filename, 'SJIS', 'UTF-8');
     140    }
     141    $original_filename = str_replace(array("\r", "\n"), '', $original_filename);
     142
     143    header('Content-Disposition: attachment; filename="' . $original_filename . '"');
     144    header('Content-Length: '. strlen($this->fileBin->getBin()));
     145    header('Content-Type: application/octet-stream');
     146    echo $this->fileBin->getBin();
     147    exit;
     148  }
    85149}
  • OpenPNE3/trunk/data/fixtures/010_import_backend_monitoring_function_navi.yml

    r12874 r12875  
    1515      ja_JP:
    1616        caption: "画像アップロード・削除"
     17
     18  backend_monitoring_function_navi_file_list:
     19    type: "monitoring_function_submenu"
     20    uri:  "monitoringFunction/fileList"
     21    sort_order: 30
     22    Translation:
     23      ja_JP:
     24        caption: "ファイルアップロードリスト"
  • OpenPNE3/trunk/lib/model/doctrine/FileTable.class.php

    r12874 r12875  
    1818  }
    1919
    20   public function getImageFiles($page = 1, $size = 20)
     20  public function getFilePager($page = 1, $size = 20)
    2121  {
    22     $q = $this->getImageOrderdQuery();
     22    $q = $this->getImageOrderdQuery()
     23      ->where('type NOT LIKE ?', 'image%');
    2324    return $this->getPager($q, $page, $size);
    2425  }
     
    2627  public function getImageFilePager($page = 1, $size = 20)
    2728  {
    28     $q = $this->getImageOrderdQuery();
     29    $q = $this->getImageOrderdQuery()
     30      ->where('type LIKE ?', 'image%');
    2931    return $this->getPager($q, $page, $size);
    3032  }
     
    4244  protected function getImageOrderdQuery()
    4345  {
    44     return $this->createQuery()->where('type LIKE ?', 'image%')->orderBy('id DESC');
     46    return $this->createQuery()->orderBy('id DESC');
    4547  }
    4648}
Note: See TracChangeset for help on using the changeset viewer.