無料ファイル転送オンラインストレージ [エストカス]のドメインをhttp://stoc.as.wakwak.ne.jp/からhttp://stocas.webhop.net/に変更しました。
日経BP社に、記事を載せていただいたhttp://stoc.as.wakwak.ne.jp/で運営している、無料ファイル転送オンラインストレージ [エストカス]のドメインをstocas.webhop.netに変更しました。
日経BP社(参考:アカウントを作成する必要なし! 「エストカス」を使う パスワードさえ知っていればファイルをダウンロードできる)
- 旧ドメイン:http://stoc.as.wakwak.ne.jp/
- 新ドメイン:http://stocas.webhop.net/
最近、月々の通信費が高いので、携帯電話やプロバイダ・回線を見直しました。サービスのプランや質は変わらなくとも、会社を変更するだけでかなりの額が安くなるのが分かったので、10年以上使っているプロバイダを変更したりしました。そのため、無料ファイル転送オンラインストレージ[エストカス]として、公開しているサイトのドメインを変更しました。
少し、遅い報告ですが、検索エンジンがブログのインデックスを張るのが早いので記事にしました。


http://stocas.webhop.net/ で「お預入れ」しても「ERR003」と表示されアップロードできません。
「ERR003」は、ファイル名のチェックで発生します。
\ / , ; : * ? ” < > | はファイル名として使用できません。
もしこれらの文字がファイル名に入っていない場合は、申し訳ありませんが私のプログラム
のバグです。英数字、一般的な日本語のファイル名は、アップロードとダウンロードが問題
なくできることを先ほど確認しました。
また、Javaアプレットの「マウスでお預入れ」では、エラーコード「ERR00X」を日本語
にして表示していますが、ブラウザのアップロード機能である「お預入れ」では、単純に
エラーコードを出力して分かりづらいので対応したいと思います。
@oklab
御回答ありがとうございます。
上記の現象は Windows XP HE 環境で IE6 を使用する場合に発生します。
(ブラウザ互換チェックのため、 IE8/IE7 ではなく、敢えて IE6 を使用しています)
なお、Firefox/Opera では正常にアップロードできていますので、これで暫定的に対処しています。
また、旧ドメイン: http://stoc.as.wakwak.ne.jp/ の利用時には、
IE6でも正常にアップロードできていました。
ファイル名の文字としては半角アルファベットのみを使用しています。
ただし、アップロードファイルのパス指定は絶対パスなので、
当然のように “:” と “\” が含まれます (例. C:\ALPHABET.ZIP ) 。
文字チェックでエラーになっているとすれば、この部分のように思われますが。
アップロードファイルを指定すると、入力フォームの中には、
IE6 を使用した場合には半角の “\” (バックスラッシュ) が表示され、
Firefox/Opera を使用した場合には半角の “¥” (エンマーク) が表示されます。
文字コード・エンコードの関係なのか、この違いが気になります。
@oklab
次のような CGI を作成、form の action に指定し、送信してみました。
[CGI]
#!/usr/local/bin/perl
print “\n”;
while () {
last if $_ eq “\r\n”;
print;
}
実行結果は次のようになりました。
[CGI結果 - IE6]
—————————–7dac1815017e
Content-Disposition: form-data; name=”file”; filename=”C:\ALPHABET.ZIP”
Content-Type: application/x-zip-compressed
[CGI結果 - Firefox 3.6]
—————————–41184676334
Content-Disposition: form-data; name=”file”; filename=”ALPHABET.ZIP”
Content-Type: application/x-zip-compressed
[CGI結果 - Opera10.10]
————kbeNWlwHsz0xBQfA8N9kuZ
Content-Disposition: form-data; name=”file”; filename=”ALPHABET.ZIP”
Content-Type: application/zip
※ Chrome, Safari その他のブラウザの動作は未確認です。
IE6 は filename がパス付きで渡されています。
http://stoc.as.wakwak.ne.jp/ から http://stocas.webhop.net/ に
移行するまでの間にファイル名のチェックを追加または強化し、
なおかつ、filename からパス部分を削除せずにファイル名のチェック
を行っているとエラーと判定されると思います。
そうだとすると、ファイル名のチェック前にパス部分を削除すれば、
IE6 のように filename がパス付きで渡されるブラウザにも対応する
ようになると考えられます。
ただ、ファイル名がどうであれ、post データは受信できていると
思います。ファイル名のチェックは必要でしょうか。
HTTPヘッダーの添付ありがとうございます。
こちらでもWindows7のXPモード(Window XP Professional SP3)のIE6で不具合を確認し修正しました。別の問題で、日本語のファイル名で半角空白が含まれる場合、ダウンロード時にエンコードの不具合がありますが、ひとまず英数字であればIE6でも利用が可能です。
>ただ、ファイル名がどうであれ、post データは受信できていると
>思います。ファイル名のチェックは必要でしょうか。
制御文字やWindowsのファイル名で禁止されている文字列をチェックしているのは、具体的にセキュリティ要件があって行っているわけではありませんが、一般的にこれら禁止文字はプログラム上だけではなく、コマンドラインでも大きな意味をもつので、プログラムの内部ロジックに入る前に弾いてしまいたいのです。
@oklab
IE6 対応ありがとうございました。IE6 でも動作することを確認しました。
>プログラムの内部ロジックに入る前に弾いてしまいたいのです。
了解しました。
p.s.
コメント欄では、HTML タグが使われるのを防止するため、半角の “<”, “>” およびその内側は
削除されるようですね。
半角の “<”, “>” は、全角で (または文字参照 < > で?) 記述する必要があるようです。
そうすると、上記の CGI は次のようになります。
[CGI]
#!/usr/local/bin/perl
print “<pre>\n”;
while (<STDIN>) {
last if $_ eq “\r\n”;
print;
}
# 実際には、”<”, “>” は半角