collective.uploadifyの利用 [Plone4.0]
collective.uploadify を利用することで複数ファイルの一括アップロードができる。jQuery のアップロードプラグイン uploadify が利用されている。
インストール
サーバへのインストール
一部ソースを修正するため、開発用ディレクトリにインストールする。http://plone.org/products/collective.uploadify よりダウンロードできる。
# tar zxvf collective.uploadify-1.1.tar.gz # mv collective.uploadify-1.1 $PLONE_INSTANCE/src/collective.uploadify
次にインスタンス内の buildout.cfg を設定する。
eggs = Plone : + collective.uploadify==1.1 zcml = : + collective.uploadify
develop =
:
+ src/collective.uploadify
次に設定を反映する。
# bin/buildout # bin/plonectl stop; bin/plonectl start
非表示フォルダにアップロードできるようにする
デフォルトでは非表示フォルダにアップロードできないため、collective/uploadify/browser/configure.zcml を次のように変更する。
<browser:page
for="*"
name="upload_file"
class=".upload.UploadFile"
- permission="zope2.View"/>
+ permission="zope.Public"/>
アップロードしたファイルのOwnerを変更する
アップロードしたファイルのOwnerが "Anonymous User" となるためこれを削除しておく。collective/uploadify/browser/upload.py を次のように変更する。
def __call__(self):
:
+ f.manage_delLocalRoles(['Anonymous User'])
logger.info("file url: %s" % f.absolute_url())
return f.absolute_url()
設定
Ploneへのインストール
Plone に管理者でログインし、「サイト設定→プロダクトを追加・削除」より collective.uploadify をインストールする。
パラメータ設定
ZMI で portal_properties/site_properties に必要なパラメータを追加すれば良い。例えばファイルサイズの制限をするには ul_size_limit パラメータを指定すればよい。
ul_size_limit : 2097152
他に次のパラメータが利用できる。
ul_auto_upload : true/false (デフォルト: false) ファイルを選択後、自動アップロード ul_allow_multi : true/false (デフォルト: true) 複数ファイルの同時アップロード ul_sim_upload_limit -- number 1-n (デフォルト: 4) 同時アップロード数 ul_size_limit -- size in bytes (デフォルト: empty) ファイルサイズの上限(バイト) ul_file_description -- text (デフォルト: empty) ファイル選択ダイアログのファイルの種類の指定 ul_file_extensions -- list of extensions (デフォルト: *.*;) ファイルの拡張子 ul_button_text -- text (デフォルト: BROWSE) ファイルブラウズボタンのテキスト ul_button_image -- path to image (デフォルト: empty) ボタンの画像パス ul_hide_button -- true/false (デフォルト: false) ボタンを隠す ul_script_access -- always/sameDomain (デフォルト: sameDomain) Flashからスクリプトへのアクセスモード。 always はローカルでテストする場合のみしか使わないこと。
フォルダのみにアップロードタブを表示
ZMI で portal_actions/object の upload を修正する。
id : upload Title : Upload URL (Expression) : string:${plone_context_state/canonical_object_url}/@@upload Condition (Expression) : python:here.portal_type=='Folder' Permissions : Modify portal content Visible? : ON