2019年12月18日
Zip Uploaderプラグインで大量のファイルを一気にアップロード
PowerCMS 管理外のファイルを FTP で一括アップロードする機会があると思います。
その場合は HTML/CSS/JS/画像のファイル一式をフォルダにまとめてFTPでアップされていると思いますが、これと同じことを PowerCMS のアップロード機能では行えません。PowerCMS のアップロード機能はファイルのみでフォルダはアップロードできません。
回避方法として Zip Uploader プラグインを利用します。Zip Uploader は ZIP ファイルを PowerCMS でアップロードした後に、解凍しサーバー内に配置する機能です。アップロードしたい HTML/CSS/JS/画像ファイルを ZIP で1ファイルにしておく必要があります。ただし、ZIPファイルを解凍するだけですので、アップロードした HTML ファイルを修正することはできません。
Zip Uploader プラグインは通常のPowerCMSのインストールでは含まれないオプションプラグインになります。利用するには PowerCMS のパッケージに「options」フォルダがありますので、その中の「plugins」フォルダの中にある「ZipUploader」フォルダを、稼働中の PowerCMS アプリケーションディレクトリの「plugins」フォルダ内にコピーしてください。
PowerCMS を PSGI で動作させている場合は、システム ⇒ 左メニュー ⇒ 設定 ⇒ 全般 に進み、画面下部の「変更を保存」ボタンをクリックしてください。これでプラグインを読み込みます。プラグインが読み込まれているかを確認するには、システム ⇒ 左メニュー ⇒ プラグイン ⇒ 設定 でプラグイン一覧が表示されますので、その中に 「Zip Uploader」があれば読み込まれています。
次に、PowerCMS にはアップロードする拡張子を制限する機能があり、ZIP ファイルのアップロードを許可していない可能性があります。PowerCMS アプリケーションディレクトリの中に、mt-config.cgi ファイルがありますので、以下の環境変数が記述されているか確認してください。
AssetFileExtensions はホワイトリストです。初期値は空で、すべてのファイルをアップロードできる状態です。設定されているようでしたら、.zip を追記し、html js png css など必要に応じて追記してください。
DeniedAssetFileExtensions は初期値があります。初期値の中に js html htm inc shtm shtmlが含まれているので、それを除外するために以下のサンプルで設定するのが良いと思います。必要に応じて調整してください。
DeniedAssetFileExtensions ascx,asis,asp,aspx,bat,cfc,cfm,cgi,cmd,com,cpl,dll,exe,htaccess,jhtml,jsb,jsp,mht,mhtml,msi,php,php2,php3,php4,php5,phps,phtm,phtml,pif,pl,pwml,py,reg,scr,sh,vbs,vxd
準備ができましたので、アップロードしたいウェブサイト/ブログに移動して、左メニュー ⇒ アイテム ⇒ アップロード に進みます。左メニューの中に「複数ファイル」がありますが、そこには ZIP 解凍の機能がないのでご注意ください。
- ファイルを選択します。
- ファイルを選択すると、「アップロード後に ZIP ファイルを展開する」が表示されますのでチェックを入れます。
- 「アップロード」ボタンをクリックします。
以上で作業は完了です。何度かテストして感覚を掴んでみてください。よくある間違いとして、データの一式を「data」等のフォルダにまとめて ZIP 圧縮しますと、その「data」フォルダも配置されてしまいます。そのあたりは実際に試してみてください。
1つだけ懸念事項として、作成されたファイルはアイテム一覧から削除できますが、残った空のフォルダを PowerCMS から削除することはできません。これは仕様になりますので、お手数ですがフォルダは FTP で削除してください。
あと、アップロードした HTML ファイルを PowerCMS で編集したい場合は、『PowerCMS 4.3で大幅に強化されたテンプレート管理機能』 の『CSSなどの素材を一括登録「共通アイテム」登録機能』の部分をご参照ください。この機能は PowerCMS 4.3 以降で利用可能です。
- カテゴリー
- PowerCMS 5
- プラグイン