- PR -

アップロードファイルのサイズチェック

投稿者投稿内容
Takaishi
常連さん
会議室デビュー日: 2004/10/11
投稿数: 24
投稿日時: 2005-01-05 21:39
J2EE環境で、HTTPによるファイルアップロード時、
クライアント側でファイル・サイズのチェックを行おうと
しています。

VBSのファイルサイズ・チェックとアップロード処理、
個別に行うことはできるのですが、
連携の方法が分かりません。
アップロードボタン押下時、クライアントサイドで
ファイルサイズをチェックし、OKの場合のみ
アップロード処理が行われるようにするには
どうしたらよろしいでしょうか?

Windows XP SP2
IE6.0 SP1
WebLogic8.1J SP3
J2EE1.3

です。
よろしくお願いします。
syousuke
会議室デビュー日: 2002/09/27
投稿数: 19
投稿日時: 2005-01-06 00:28
VBSでファイルサイズをチェックしておき、
Submitイベントで、チェック結果OKであれば
アップロード処理を続行し、NGであれば処理
を行わないようにすればよいと思います。
pascal
常連さん
会議室デビュー日: 2004/04/29
投稿数: 29
お住まい・勤務地: 神奈川県
投稿日時: 2005-01-06 01:01
色々問題はありますが、こんなのなら出来ると思います。
<html>
<head>
<script language="VBScript">
Sub fnOnClick()
Set Fs = CreateObject("Scripting.FileSystemObject")
If Fs.FileExists(document.foo.uploaded_file.value) then
Set fl = Fs.getFile(document.foo.uploaded_file.value)
If fl.size >= 3000 then
alert("ファイルが大きすぎます")
else
document.foo.submit()
end if
else
alert("ファイル名が無効です")
end if
End Sub
</script>
</head>

<body>

<form name="foo">
<input type="file" name="uploaded_file" >
<input type="button" onclick="fnOnClick()">
</form>

</body>

</html>

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-01-06 02:25
ちなみにサーバサイドでは[最大POSTサイズ]で指定できます。
管理コンソールでいうところの[プロトコル->HTTP->最大POSTサイズ]ですね。
http://edocs.beasys.co.jp/e-docs/wls/docs81/adminguide/web_server.html#120770
悪意のあるリクエストを防ぎたいのであればこちらを設定したほうが良いでしょう。
手前に Web サーバを立てて Webサーバプラグインを使っている場合はMasPostSizeパラメータを設定します。
http://edocs.beasys.co.jp/e-docs/wls/docs81/plugins/plugin_params.html#1154602

あとご質問とは直接関係ありませんが WLS の最新バージョンは SP4 になります。
トラブルを未然に防ぐためにも最新版にしておくと良いでしょう。
http://jp.bea.com/BeaPortal/application?namespace=BeaPortal&origin=index.jsp&event=link.evamenu&ID=1&VERSION_KEY=16
Takaishi
常連さん
会議室デビュー日: 2004/10/11
投稿数: 24
投稿日時: 2005-01-07 18:44
ありがとうございました。
VBSでリクエストをサブミットする方法を知りませんでした。
解決です。
その他いろいろのアドバイス、参考にさせていただきます。

くりお
常連さん
会議室デビュー日: 2004/01/30
投稿数: 34
投稿日時: 2005-01-20 02:08
VBScriptを使用すると、アップロードファイルのサイズチェックが出来るんですね。
初めて知りました。

クライアント側でファイルサイズのチェックの話題で追加でご質問させていただきたいのですが、
JavaScriptを使用して同様にアップロードファイルのサイズチェックを行うことは
可能なのでしょうか?


さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-01-20 20:28
引用:

くりおさんの書き込み (2005-01-20 02:08) より:
VBScriptを使用すると、アップロードファイルのサイズチェックが出来るんですね。
初めて知りました。

クライアント側でファイルサイズのチェックの話題で追加でご質問させていただきたいのですが、
JavaScriptを使用して同様にアップロードファイルのサイズチェックを行うことは
可能なのでしょうか?






最近知ったのですが、
IE限定なら、ActiveXObjectが使えますよ。
MSDNにマニュアルがあります。

getFileオブジェクトでサイズ取れるんじゃないかな?
やっとことないですけど…
pascal
常連さん
会議室デビュー日: 2004/04/29
投稿数: 29
お住まい・勤務地: 神奈川県
投稿日時: 2005-01-22 15:38
こんにちは。
JavaScriptとActiveXObjectを使って書いてみました。

コード:
<html>
<head>
<script language="JavaScript">
function fnOnClick() {
    Fs = new ActiveXObject("Scripting.FileSystemObject"); //ここがVBScriptと違う書き方
    if ( Fs.FileExists(document.foo.uploaded_file.value) ) {
        fl = Fs.getFile(document.foo.uploaded_file.value);
        if ( fl.size >= 3000 ) {
            alert("ファイルが大きすぎます");
        } else {
            document.foo.submit();
        }
    } else {
        alert("ファイル名が無効です");
    }
}
</script>
</head>

<body>

<form name="foo">
<input type="file" name="uploaded_file" >
<input type="button" onclick="fnOnClick()">
</form>

</body>

</html>




因みに、私の環境では、AntiVirusに、「悪質なスクリプトを検出しました」とか、
IE6に、「ActiveXを実行しますが良いですか」みたいなことを言われます。
実行は出来ますけど。

スキルアップ/キャリアアップ(JOB@IT)