NetCommons-3.2.0でキャビネットのzipファイルが解凍できない。

投稿日時: 2018/10/02 k-hisao

現在2.4でNPOのホームページを運用していますが、そろそろ3にバージョンアップしようかと考えています。まず2から3への変換の試行錯誤のため自前のローカルサーバに環境を構築して3に慣れようとしています。ローカルのubuntu18.04に3.2.0をいちからインストールしました。インストールは、最後まで問題なく完了し、プライベートルームに新しくキャビネットを配置し3つの日本語名のファイルをzip圧縮したものをアップロードしてそれを解凍しようとしたのですが、なんの反応もありません。そのうえ最上段のシステムのメニューも選択できなくなりました。ブラウザの再読込でログイン画面になりログインするとキャビネットの画面に戻りますがzipファイルが解凍できていません。
PHPを7.2から5.6に変えて試しましたがやはり解凍できません。試しに3.0.9と3.10.0+patch1をインストールしてそれぞれ同じようにキャビネット中のzipファイルの解凍をしたところ何の問題もなく解凍できました。また、新たにローカルにubuntu14.04をインストールして(phpのバージョンは5.5.9、MySQLは5.5.61です。)同じように3.0.10+patch1と3.2.0をインストールしたのですが、3.0.10+patch1は問題ないようですが3.2.0ではやはり解凍できません。

どうもPHPやMySQLのバージョンは関係ないように思うのですが、3.1.10と3.2.0でキャビネットのunzipの扱いが何か変わったのでしょうか。uploadファイルの場所が変わったそうですが関係あるのでしょうか。

わかりにくい文章で申し訳ありません。2から3の変換ツールがうまく行かないときは大量のキャビネットファイルをアップロードしなければならず圧縮したファイルをアップロードしたうえで解凍するという手段を考えています。3.1.10でも他に問題なければいいのですが、やはり最新のバージョンを使用したいものです。

(参考)3.2.0でzipファイルが解凍できなかったときのエラーログ

cat nc320/app/tmp/logs/error.log

2018-10-02 08:06:48 Error: [InternalErrorException] UnZip Failed.
Request URL: /nc320/cabinets/cabinet_files_edit/unzip/5/17af74ac63045ab1be1c1fcbe933d76f?frame_id=6
Stack Trace:
#0 [internal function]: CabinetUnzipBehavior->unzip(Object(CabinetFile), Array)
#1 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Model/BehaviorCollection.php(239): call_user_func_array(Array, Array)
#2 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(829): BehaviorCollection->dispatchMethod(Object(CabinetFile), 'unzip', Array)
#3 /var/www/html/nc320/app/Plugin/Cabinets/Controller/CabinetFilesEditController.php(646): Model->__call('unzip', Array)
#4 /var/www/html/nc320/app/Plugin/Cabinets/Controller/CabinetFilesEditController.php(646): CabinetFile->unzip(Array)
#5 [internal function]: CabinetFilesEditController->unzip()
#6 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Controller/Controller.php(491): ReflectionMethod->invokeArgs(Object(CabinetFilesEditController), Array)
#7 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Routing/Dispatcher.php(193): Controller->invokeAction(Object(CakeRequest))
#8 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Routing/Dispatcher.php(167): Dispatcher->_invoke(Object(CabinetFilesEditController), Object(CakeRequest))
#9 /var/www/html/nc320/app/webroot/index.php(121): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#10 {main}

 

Re: NetCommons-3.2.0でキャビネットのzipファイルが解凍できない。

投稿日時: 2018/10/04 jsuzuki

横槍ですみません。

ファイル名の横にある3つ点が並んだボタンの「解凍」ですよね。英語のファイル名でも解凍されませんでした。

ただ自分の場合、それを使ったことがなく、以前どうだったかわかりません。が、3.2.0では確かに何も起こりませんね。

自分はファイル名をクリックして、OS依存のダイアログで保存・解凍を選んでいるので、あまり影響はありませんが、動かないものがあっても困るので、調査してもらいたいですね。

Re: NetCommons-3.2.0でキャビネットのzipファイルが解凍できない。

投稿日時: 2018/12/07 石川誠

私も、2010年ころからNetcommonsでサイトを構築していますが、時間ができたので3.2.1.1でインストールしてみました。ところが、まったく同様にキャビネットでzipが解凍できない現象に困惑しています。うまくいけば、完全移行しようと思っていたので、なんとかしてほしいですね。

現在2.4でNPOのホームページを運用していますが、そろそろ3にバージョンアップしようかと考えています。まず2から3への変換の試行錯誤のため自前のローカルサーバに環境を構築して3に慣れようとしています。ローカルのubuntu18.04に3.2.0をいちからインストールしました。インストールは、最後まで問題なく完了し、プライベートルームに新しくキャビネットを配置し3つの日本語名のファイルをzip圧縮したものをアップロードしてそれを解凍しようとしたのですが、なんの反応もありません。そのうえ最上段のシステムのメニューも選択できなくなりました。ブラウザの再読込でログイン画面になりログインするとキャビネットの画面に戻りますがzipファイルが解凍できていません。
PHPを7.2から5.6に変えて試しましたがやはり解凍できません。試しに3.0.9と3.10.0+patch1をインストールしてそれぞれ同じようにキャビネット中のzipファイルの解凍をしたところ何の問題もなく解凍できました。また、新たにローカルにubuntu14.04をインストールして(phpのバージョンは5.5.9、MySQLは5.5.61です。)同じように3.0.10+patch1と3.2.0をインストールしたのですが、3.0.10+patch1は問題ないようですが3.2.0ではやはり解凍できません。

どうもPHPやMySQLのバージョンは関係ないように思うのですが、3.1.10と3.2.0でキャビネットのunzipの扱いが何か変わったのでしょうか。uploadファイルの場所が変わったそうですが関係あるのでしょうか。

わかりにくい文章で申し訳ありません。2から3の変換ツールがうまく行かないときは大量のキャビネットファイルをアップロードしなければならず圧縮したファイルをアップロードしたうえで解凍するという手段を考えています。3.1.10でも他に問題なければいいのですが、やはり最新のバージョンを使用したいものです。

(参考)3.2.0でzipファイルが解凍できなかったときのエラーログ

cat nc320/app/tmp/logs/error.log

2018-10-02 08:06:48 Error: [InternalErrorException] UnZip Failed.
Request URL: /nc320/cabinets/cabinet_files_edit/unzip/5/17af74ac63045ab1be1c1fcbe933d76f?frame_id=6
Stack Trace:
#0 [internal function]: CabinetUnzipBehavior->unzip(Object(CabinetFile), Array)
#1 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Model/BehaviorCollection.php(239): call_user_func_array(Array, Array)
#2 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(829): BehaviorCollection->dispatchMethod(Object(CabinetFile), 'unzip', Array)
#3 /var/www/html/nc320/app/Plugin/Cabinets/Controller/CabinetFilesEditController.php(646): Model->__call('unzip', Array)
#4 /var/www/html/nc320/app/Plugin/Cabinets/Controller/CabinetFilesEditController.php(646): CabinetFile->unzip(Array)
#5 [internal function]: CabinetFilesEditController->unzip()
#6 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Controller/Controller.php(491): ReflectionMethod->invokeArgs(Object(CabinetFilesEditController), Array)
#7 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Routing/Dispatcher.php(193): Controller->invokeAction(Object(CakeRequest))
#8 /var/www/html/nc320/vendors/cakephp/cakephp/lib/Cake/Routing/Dispatcher.php(167): Dispatcher->_invoke(Object(CabinetFilesEditController), Object(CakeRequest))
#9 /var/www/html/nc320/app/webroot/index.php(121): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#10 {main}

 

Re: NetCommons-3.2.0でキャビネットのzipファイルが解凍できない。

投稿日時: 2018/12/07 EddyK

エディ・ケイ ささきです。

わたしの環境で確認してみましたが同じ事象になり調べてみました。

多分ですが、アップロードしたファイルの格納位置を変える修正が3.2(3.1.10?)にあったと思いますが、その時の修正もれかなあと思います。

app/Plugin/Cabinets/Model/BehaviorのCabinetUnzipBehavior.php の28ライン目の

$zipPath = WWW_ROOT . $cabinetFile['UploadFile']['file']['path'] . を
$zipPath = dirname(WWW_ROOT) . DS . 'Uploads' . DS . $cabinetFile['UploadFile']['file']['path'] .

に直せば解凍が可能となりました。

本当はもっとよい記述方法があるかもしれませんが、filesプラグインのUploadFile.phpでこのような記述になっていたのでそれを真似てみました。

一度試されてみてはいかがでしょうか。

Re2: NetCommons-3.2.0でキャビネットのzipファイルが解凍できない。

投稿日時: 2018/12/08 osws 牟田口 満

オープンソース・ワークショップの牟田口です。

修正情報ありがとうございました。

 

issueにあげてバグ修正することができました。

https://github.com/NetCommons3/NetCommons3/issues/1389

次期バージョンでは解決されると思います。

 

エディ・ケイ ささきです。

わたしの環境で確認してみましたが同じ事象になり調べてみました。

多分ですが、アップロードしたファイルの格納位置を変える修正が3.2(3.1.10?)にあったと思いますが、その時の修正もれかなあと思います。

app/Plugin/Cabinets/Model/BehaviorのCabinetUnzipBehavior.php の28ライン目の

$zipPath = WWW_ROOT . $cabinetFile['UploadFile']['file']['path'] . を
$zipPath = dirname(WWW_ROOT) . DS . 'Uploads' . DS . $cabinetFile['UploadFile']['file']['path'] .

に直せば解凍が可能となりました。

本当はもっとよい記述方法があるかもしれませんが、filesプラグインのUploadFile.phpでこのような記述になっていたのでそれを真似てみました。

一度試されてみてはいかがでしょうか。

Re2: NetCommons-3.2.0でキャビネットのzipファイルが解凍できない。

投稿日時: 2018/12/08 石川誠

早速、書き換えてみた結果、解凍できるようになりました。

ありがとうございました。

 

エディ・ケイ ささきです。

わたしの環境で確認してみましたが同じ事象になり調べてみました。

多分ですが、アップロードしたファイルの格納位置を変える修正が3.2(3.1.10?)にあったと思いますが、その時の修正もれかなあと思います。

app/Plugin/Cabinets/Model/BehaviorのCabinetUnzipBehavior.php の28ライン目の

$zipPath = WWW_ROOT . $cabinetFile['UploadFile']['file']['path'] . を
$zipPath = dirname(WWW_ROOT) . DS . 'Uploads' . DS . $cabinetFile['UploadFile']['file']['path'] .

に直せば解凍が可能となりました。

本当はもっとよい記述方法があるかもしれませんが、filesプラグインのUploadFile.phpでこのような記述になっていたのでそれを真似てみました。

一度試されてみてはいかがでしょうか。