none
WebDAVを利用して日本語名のファイルがアップロードできない(WindowsXP/IE8)

    質問

  • WebDAVを利用して日本語名のファイルがアップロードできない(WindowsXP/IE8)

    WindowsXPの環境にて、WebDAVサーバへ接続していたのですが、
    IEを7から8に更新したところ、ファイル名が日本語のファイルをアップロードできなくなりました。

    フォルダは問題なくアップロード可能です。
    ファイルをアップする場合のみ、以下のような現象が起きています。

    ・ファイル名が日本語で始まる場合 例)サンプル.txt
     →「フォルダ <アクセスしているURL> は利用不可になっています。」というメッセージが表示され
      アップロードできない
    ・ファイル名の最初3文字が半角英数の場合 例)ABCサンプル.txt
     →アップロードできる

    WebDAVへは、マイネットワークからネットワークプレースを追加して接続しています。
    IE8をアンインストールしIE7に戻すと、この問題は起きません。

    IEのバージョンによって、WebDAVへの接続方法が何か変わるのでしょうか?
    サーバ側のログやHTTPヘッダー等を見る限り、どちらもMSDAIPPを利用しているようです。

    本現象の対処法について、何かアドバイスを頂ければ幸いです。
    どうぞよろしくお願いいたします。

    環境
    サーバ:CentOS5.7 / Apache 2.2.3(mod_encoding利用)
    クライアント:WindowsXP SP3 / IE8 (※IE7の場合、この問題は発生しません)
    ・以下適応済
      KB907306(MicrosoftのWebフォルダのソフトウェア更新プログラム)
      http://www.microsoft.com/downloads/ja-jp/details.aspx?displaylang=ja&FamilyID=17c36612-632e-4c04-9382-987622ed1d64
    2012年4月29日 9:11

回答

  • 本件解決したため、その手順を記載しておきます。ご参考までに。
    本件アドバイスを下さった皆様、本当にありがとうございました。

    ■環境
    クライアント:WindowsXP SP1/IE8/Office2007
    サーバ:CentOS5.7/Apache2.2.3
            (WebDAVにBasic認証+SSLクライアント認証を設定)

    ■原因
    MSDAIPP.DLLのバージョンが古い(ver.8)

    「KB907306更新プログラム」を実行することで、MSDAIPP.DLLが新しくなっていたが(ver.12)、
    その後、「webfldrs.msi」を実行し、再インストールしたことで、
    MSDAIPP.DLLのバージョンが古いものに戻っていた(ver.8)

    ※「webfldrs.msi」実行後、再度「KB907306更新プログラム」を実行しても、
     MSDAIPP.DLLは更新されず、ver.8のままであった

    ※私の環境では、「webfldrs.msi」を実行しないと、
     SSLクライアント認証を含むWebDAVサーバに接続できなかった

    ■解決法
    1.「C:\WINDOWS\system32\webfldrs.msi」を実行
      Select reinstall mode → 1,7,8,9番目をチェック → OK → Reinstall
    2.PC再起動
    3.以下コマンドにて、DLLの登録解除+モジュールの名前変更
      C:\Program Files\Common Files\System\Ole DB>regsvr32 /u Msdaipp.dll
      C:\Program Files\Common Files\System\Ole DB>rename Msdaipp.dll Msdaipp.dll.org
      C:\Program Files\Common Files\System\Ole DB>rename Msdapml.dll Msdapml.dll.org
      C:\Program Files\Common Files\Microsoft Shared\Web Folders>rename Msonsext.dll Msonsext.dll.org
    4.PC再起動
    5.「KB907306更新プログラム」を実行
    6.ネットワークプレースから、WebDAVサーバへ接続

    • 回答としてマーク ckrs 2012年6月21日 9:22
    2012年6月21日 9:22

すべての返信

  • WebDAVはうまくいかないケースがあるようですね。

    直接の対処法ではないかもですが、クライアントを変えてしまう手(CarotDAV等)もあるかもです。

    # 公式サイトによるとピーマンよりにんじんが好きならとのことです。

    2012年5月2日 13:39
  • コメントありがとうございます。
    確かにCarotDAV等、別のWebDAVクライアントツールを利用すれば問題ありません。

    クライアント側の環境に、フリーツールをイントールできないという制約があるため、
    Windows標準の接続方法での対処法を探しております。

    引き続き、情報がありましたらご教示頂ければ幸いです。
    どうぞよろしくお願いいたします。

    2012年5月7日 6:04
  • 良く知りませんが、
    ファイルを作成するときは、次のようなリクエストを送れば良いようです。
     
    PUT /uploads/%E3%81%82.html HTTP/1.1
    Host: localhost
    Connection:  close
    Content-type: application/octet-stream
    Content-length: 5
    
    PUT!!
     
    これをコマンドプロンプトでtelnetでコピペして貼り付けると、
    手元のapache2.2+mod_davの場合、「あ.html」というファイルが作成出来ました。
     
    汎用性と手間は犠牲にはなりますが、
    Rubyでも、*.vbsでもいいので、アップロードするだけのツールを別途作るのも手かもですね。
    # 認証が必要な場合、もう少し工夫が必要かもですが。
    2012年5月8日 17:33
  • 動作確認までして頂き、本当にありがとうございます。
    他解決策がなければ、ある程度ツールを自作することもに視野に入れたいと思います。

    2012年5月14日 2:59
  • 本件解決したため、その手順を記載しておきます。ご参考までに。
    本件アドバイスを下さった皆様、本当にありがとうございました。

    ■環境
    クライアント:WindowsXP SP1/IE8/Office2007
    サーバ:CentOS5.7/Apache2.2.3
            (WebDAVにBasic認証+SSLクライアント認証を設定)

    ■原因
    MSDAIPP.DLLのバージョンが古い(ver.8)

    「KB907306更新プログラム」を実行することで、MSDAIPP.DLLが新しくなっていたが(ver.12)、
    その後、「webfldrs.msi」を実行し、再インストールしたことで、
    MSDAIPP.DLLのバージョンが古いものに戻っていた(ver.8)

    ※「webfldrs.msi」実行後、再度「KB907306更新プログラム」を実行しても、
     MSDAIPP.DLLは更新されず、ver.8のままであった

    ※私の環境では、「webfldrs.msi」を実行しないと、
     SSLクライアント認証を含むWebDAVサーバに接続できなかった

    ■解決法
    1.「C:\WINDOWS\system32\webfldrs.msi」を実行
      Select reinstall mode → 1,7,8,9番目をチェック → OK → Reinstall
    2.PC再起動
    3.以下コマンドにて、DLLの登録解除+モジュールの名前変更
      C:\Program Files\Common Files\System\Ole DB>regsvr32 /u Msdaipp.dll
      C:\Program Files\Common Files\System\Ole DB>rename Msdaipp.dll Msdaipp.dll.org
      C:\Program Files\Common Files\System\Ole DB>rename Msdapml.dll Msdapml.dll.org
      C:\Program Files\Common Files\Microsoft Shared\Web Folders>rename Msonsext.dll Msonsext.dll.org
    4.PC再起動
    5.「KB907306更新プログラム」を実行
    6.ネットワークプレースから、WebDAVサーバへ接続

    • 回答としてマーク ckrs 2012年6月21日 9:22
    2012年6月21日 9:22