Linux→WindowsへOpenPNEのサイトを移行させたのですが、画像のアップロードができなくなったのでその対処法のメモ。 #OpenPneバージョン2.8.2のお話。 とりあえず、画像のアップ処理を行っているところで、エラーメッセージをダンプ。 Warning: filesize() [function.filesize]: stat failed for C:/WINDOWS/TEMP(略 ということなので、テンポラリのディレクトリの権限が悪いんだろうなーと、妄想。 php.iniのupload_tmp_dirを弄るなりして、適切な権限のあるディレクトリをアップロード先に指定すればよいのでしょうが、リモートな環境のため弄ることもかなわず。 というわけで、OpenPNE/webapp/lib/db/image.phpのdb_image_insert_c_tmp_imageとdb_image_insert_c_image2の2つの関数内部にあるアップロードファイル読み込み処理を以下のように書き換え。

$image_data = fread($fp, filesize($filepath));

$image_data = ‘’; while (!feof($fp)) { $image_data .= fread($fp, 8192); } どーにか動きましたとさ。