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

Opened 13 years ago

Closed 13 years ago

#223 closed enhancement (fixed)

ファイルアップロード/ダウンロード機能

Reported by: ookura Owned by: ebihara
Priority: blocker Milestone: OpenPNE2.7.5(2.8β1)
Component: PNEBIZ Version: 2.4
Keywords: Cc:

Description

SNSにファイル管理の機能をつけて、ユーザー毎にアップロード、ダウンロードできるようにして欲しい。

Change History (11)

comment:1 Changed 13 years ago by takanashi

Owner: changed from tejimaa to takanashi

comment:2 Changed 13 years ago by takanashi

REQUEST/69 「ファイルアップ」

comment:3 Changed 13 years ago by takanashi

Milestone: OpenPNE2.6機能仕様フリーズOpenPNE2.8機能仕様

期間的に2.6には入れられませんでした

comment:4 Changed 13 years ago by tejimaa

Priority: minorblocker

comment:5 Changed 13 years ago by takanashi

Type: defectenhancement

comment:6 Changed 13 years ago by ebihara

Owner: changed from takanashi to ebihara

やります。

comment:7 Changed 13 years ago by ebihara

source:OpenPNE/branches/ebihara/prj_dev28_fileupload

以下のリビジョンで実装が完了しました。 ただし現状のコードはMIMEタイプを$_FILESの値から取得している上、それをhiddenで引き回しているのでセキュリティ上の問題がありますので、対応する必要があります。

r2065, r2068, r2072, r2101, r2102, r2103, r2105, r2106, r2107, r2108, r2109, r2110

comment:8 Changed 13 years ago by ebihara

DBに登録するMIMEタイプの決定については、以下のようにしたいと思います。

参考:http://www.mozilla-japan.org/docs/web-developer/mimetypes.html

  • 登録されるファイルが画像である場合: GDライブラリによってMIMEタイプを決定
  • MIMEタイプが指定されなかった or MIMEタイプが実行可能な形式: ファイルの先頭ヘッダを見て、ヌル文字が見つからなければtext/plainとし、見つかった場合はapplication/octet-streamとする
  • MIMEタイプが指定されており実行可能な形式でない場合: そのMIMEタイプを使用する

現状のMIMEタイプをhiddenで引き回している問題の代替として、「ファイルがアップロードされた段階でMIMEタイプのみを先にDBに登録しておき、c_file_idをhiddenで引き回す」といった方法があるかと思いますが、これは確認画面をリロードした際やキャンセルしてからもう一度項目を入力し直した際に、どのトピックにも関連づけられていないc_fileが大量に残ってしまう可能性が考えられるため、この方法は採りません。

その代わりに危険なMIMEヘッダを極力無害な物に変更するようにして対処したいと思います。

comment:9 Changed 13 years ago by ebihara

上のリストが見づらいので書きなおし。

  • 登録されるファイルが画像である場合: GDライブラリによってMIMEタイプを決定
  • MIMEタイプが指定されなかった or MIMEタイプが実行可能な形式: ファイルの先頭ヘッダを見て、ヌル文字が見つからなければtext/plainとし、見つかった場合はapplication/octet-streamとする
  • MIMEタイプが指定されており実行可能な形式でない場合: そのMIMEタイプを使用する

comment:10 Changed 13 years ago by takanashi

Milestone: OpenPNE2.8.0OpenPNE2.7.5(2.8β1)

MIMEタイプ非対応版(暫定版)を2.7.5に出します。

comment:11 Changed 13 years ago by takanashi

Resolution: fixed
Status: newclosed

2.7.5で盛り込みました。
改善については別チケットで。

Note: See TracTickets for help on using tickets.