ページ 1 / 1
jpeg拡張子の画像がアップできない。
Posted: 2018年2月01日(木) 13:52
by mojira
いつもお世話になっております。
リソース編集時のFile Browserにてjpeg拡張子の画像をアップしようとすると
[202,'Failed to upload file, internal error.' jpeg]のエラーがでて、アップ出来ないようです。
グローバル設定の「ファイル管理設定」もjpegと記述しています。
当方の環境によるものなのかと考え、MODXデモサイトにて確認したのですが、
同様のエラーでアップ出来ませんでした。
ちなみに、アップ前の画像拡張子jpegをjpgとリネームすると、正常にアップできます。
MODXの問題ではなく、ファイルブラウザの問題かも知れません。
どうぞ宜しくお願い申し上げます。
/*********使用環境**************/
ご利用のサーバ:ロリポップ
MODXバージョン:1.0.19J
PHPのバージョン:7.1.5
ブラウザ:chrome
/*****************************/
jpeg拡張子の画像がアップできない。
Posted: 2018年2月08日(木) 01:59
by mod_kks
エラーが出た後、ファイルブラウザをリロードするとおそらく画像自体はアップされていて、
拡張子は「.jpeg」から「.jpg」に変わっているのではないかと思いますがいかがでしょうか。
見た所、$modx->move_uploaded_file の動作でIMAGETYPE_JPEGに該当するものは拡張子を
「.jpg」としてしまうようで、chmodの第一引数で渡されるパス(.jpeg)と移動後の実ファイル(.jpg)
に差異が生じ、ファイルが見つからずPHP上ではエラー→エラー抑制で戻り値なし→エラーコード、
メッセージがJSに渡され表示・・・といった感じでしょうか。
/manager/media/browser/mcpuk/connectors/Commands/FileUpload.php
if($modx->manager->modx_move_uploaded_file($tmp_name,$target))
return @chmod($target,$modx->config['new_file_permissions']);
$targetで渡されるファイル名を末尾「.jpeg」に合致する場合のみ「.jpg」に書き換えるような
処理を書けば暫定的な解決はできそうな気がしますが、そもそも$modx->move_uploaded_file
でchmod処理が行われているような気がするので、単純に「return true;」でも問題ないかも。
jpeg拡張子の画像がアップできない。
Posted: 2018年2月08日(木) 12:35
by mojira
mod_kksさん ありがとうございます。
拡張子は「.jpeg」から「.jpg」に変わっているのではないかと思いますがいかがでしょうか。
確かにブラウザをリロードすると、.jpgに変わってアップされておりました。
確認不足で申し訳ありません。
$targetで渡されるファイル名を末尾「.jpeg」に合致する場合のみ「.jpg」に書き換えるような
処理を書けば暫定的な解決はできそうな気がしますが、そもそも$modx->move_uploaded_file
でchmod処理が行われているような気がするので、単純に「return true;」でも問題ないかも。
解決方法もご教授頂き感謝です。
プログラムは全然詳しくないのですが、頂いた内容を元に書換えて見たいと思います。
jpeg拡張子の画像がアップできない。
Posted: 2018年2月14日(水) 11:09
by yama
なるほどですね。ファイルブラウザ側のchmodを廃止するのがスマートだと思うので、後ほど修正します。
jpeg拡張子の画像がアップできない。
Posted: 2018年2月14日(水) 12:42
by yama
jpeg拡張子の画像がアップできない。
Posted: 2018年2月15日(木) 13:42
by mod_kks
yama様、いつもご対応いただきありがとうございます。
if($modx->modx_move_uploaded_file($tmp_name,$target))
この部分ですが、
if($modx->manager->modx_move_uploaded_file($tmp_name,$target))
になるのではないでしょうか。
上記変更して確認してみたのですが、アップロードは上手くできています。
ただ、私の環境ではファイルの削除が上手くできないようで、詳しくは追えてないのですが
やはりアップロード時のパーミッション変更に問題があるように思います。