ディレクトリ制限付きファイルアップロードの方法

フォローする

セキュリティ上の理由から、オンラインバンキングのファイルアップロードなどは、ローカルマシン上の特定ディレクトリ(ドライブ・フォルダ)に置いてあるファイルしかサーバにアップロードできないと言う制限を掛けている場合があります。

このようなシステムの場合、FireFox や Chrome 等からはファイルがアップロードできず、IEのみ対応のWebシステムであったりします。
(ファイルアップロード時のファイル名パラメータに、ファイル名のみならずファイルパスも付けてサーバに送信する必要がありますが、IE以外のブラウザにおいてはファイル名のみを送信する仕様になっているため。)

BizRobo! で実行する際も同様に、通常 「Select File(ファイル選択)」アクションで対象ファイルを指定する場合、サーバへ送信されるPOSTデータ内のパラメータはファイル名のみになりますが、以下の手順で「Select File(ファイル選択)」を組むことにより、IEと同様にPOSTデータ内のパラメータにファイルパス+ファイル名で値をセットし、ディレクトリ制限付きのシステムに対してもファイルアップロードが実現できます。

手順

  1. 「Load File(ファイル読込)」アクションでアップロード対象ファイルを Variable(変数) (Binary型)へ一旦格納
  2. 「Select File(ファイル選択)」アクションでアップロード対象ファイルに上記 Variable(変数) を指定するのと同時に、File Name(ファイル名) 属性にファイルパス付ファイル名を指定する。

参考:
IE以外のブラウザが生成するパラメータ
Content-Disposition: form-data; name=”FIL_FIL_NM_SC”; filename=”FileA000T99.txt”

IEがデフォルトで生成するパラメータ
Content-Disposition: form-data; name=”FIL_FIL_NM_SC”; filename=”R:\hogemoge\FileA000T99.txt”

ただし、IEの場合、設定をOFFにすることで通常のブラウザと同様のパラメータを生成することもできる。
設定手順
[internet option]->[Security]->[Customize Level]->[Include local directory path when upload files to the server]-> Enable/Disable

How2SetByIE.png