日頃より当サイトの情報でお世話になっております。
質問事項ですがD3Downloadモジュールをインストールし利用しておりますが、アップロードした
ファイルをダウンロードしファイルを開こうとするとファイルが壊れて開けません。
すべてのファイル種別が同現象ではなく、テキストデータやPDFファイルは正常に開きます。
逆にどうしても開かないファイル形式はエクセル、ワード、パワーポイントなどMicorosoftの
Office製品のファイルがダウンロードするとファイルが壊れており開けません。
ただしFTPソフトでアップロード先のファイルをダウンロードした場合には開くことができるため
D3Downloadでダウンロードした際に何か不具合があるようです。
あれこれ調べてはみたもののお手上げ状態のため、アドバイスをいただけたらと思います。
以下、使用環境を添付いたします。
サーバー環境変数
OS: Windows NT WEB34 5.2 build 3790
PHP: 5.2.9-2
MySQL: 5.0.83-community
XOOPS: XOOPS Cube Legacy 2.1.4
error_reporting: 0
display_errors: 0
memory_limit: 128
magic_quotes_gpc: 0
allow_url_fopen: 1
safe_mode: 0
open_basedir:
mbstring.language: Japanese
mbstring.detect_order: ASCII UTF-8
mbstring.http_input: pass
mbstring.http_output: pass
mbstring.internal_encoding: UTF-8
mbstring.script_encoding:
mbstring.substitute_character: none
mbstring.func_overload: 0
mbstring.encoding_translation: 0
mbstring.strict_encoding: 0
work directory: D:/CustomerData/webspaces/webspace_00133756/wwwroot/xoops.nansin.co.jp/xp/html/modules/happy_linux/cache
D3DOWNLOADインストール環境
アップロード時の最大ファイルサイズ 10,240,000 byte アップロード先ディレクトリチェック アップロード先ディレクトリD:/CustomerData/webspaces/webspace_00133756/wwwroot/xoops.nansin.co.jp/xp/xoops_trust_path/uploads/d3downloads/OK リンクされていないアップロードファイル0 Files ( total 5 Files ) キャッシュディレクトリチェック キャッシュディレクトリD:/CustomerData/webspaces/webspace_00133756/wwwroot/xoops.nansin.co.jp/xp/xoops_trust_path/cache/OK 使用環境 XOOPSXOOPS Cube Legacy 2.1.4 LANGUAGEja_utf8 SERVERMicrosoft-IIS/6.0 PHP5.2.9-2 MySQL5.0.83-community d3downloadsv1.49 altsysv0.71OK php.iniディレクティブチェック file_uploadsOK upload_max_filesize10,485,760 byteOK post_max_size10,485,760 byteOK open_basedirnoting upload_tmp_dirOK memory_limit128M max_execution_time60s safe_modeoff register_globalsoff output_buffering4096 output_handler default_charsetUTF-8 multibyte extentionloaded mbstring.languagejapanese mbstring.encoding_translation0 mbstring.internal_encoding mbstring.http_inputpass mbstring.http_outputpass mbstring.detect_order mbstring.substitute_characternone mbstring.func_overload 0 MySQL CHARACTER SET version5.0.83-community character_set_clientutf8 character_set_connectionutf8 character_set_databaseutf8 character_set_filesystembinary character_set_resultsutf8 character_set_serverutf8 character_set_systemutf8 テーブルチェック d3downloads_catOK ( 4 Records ) d3downloads_downloadsOK ( 5 Records ) d3downloads_brokenOK ( 0 Records ) d3downloads_unapprovalOK ( 0 Records ) d3downloads_downloads_historyOK ( 1 Records ) d3downloads_user_accessOK ( 12 Records ) d3downloads_votedataOK ( 0 Records ) d3downloads_mylinkOK ( 0 Records )
コメント(3)

質問をさせていただきましたlhopeです。
こちらで質問を書かせていただいた後にいろいろ調べていて直接の原因がわかりました。
ファイルが開かない原因はどんなファイル形式にかかわらず、先頭より3バイトがスペースに
置き換わっていることが判明しました。
それによりテキスト文書などは頭先頭3バイトがスペースに置き換わった形で開くようですが
ワードやエクセルなどはファイルが壊れたと判断され開かないみたいです。
直接的な原因はわかったのですが、どこでファイルの先頭3バイトがスペースになっているのか
わからないため、どなたか対応方法を教えていただけないでしょうか。
よろしくお願いいたします。
質問をさせていただきましたlhopeです。
問い合わせをさせていただいております件で、私なりにいろいろ調査して
かなり不具合となる箇所が特定されましたので不具合に対する追加情報として
書き込みを行いました。
1.アップロードされたファイルではデータは壊れていない。
(FTPでダウンロードし、該当のファイル拡張子を着けるとアプリケーションで開ける)
2.D3DOWNLOADのモジュール内ではファイルリンクURL、ファイル名、サイズ及び
ダウンロード情報としてのカテゴリIDなどはすべて正しく動作している。
3.結論からすると\xoops_trust_path\modules\d3downloads\include
「download_functions.php」の最終的なダウンロード時にファイルが壊れている。
具体的にはファイルの先頭3バイトが空白になっている。
以上質問をさせていただいている不具合調査で今までにわかった事をコメントさせて
いただきました。おそらくPHPでのファイルダウンロード処理時に問題があると
思われますが、PHPがよくわからず困っております。
どうかご助言をいただけますよう、よろしくお願いいたします。