-PR-
締切済み

Mac・Winでファイル名チェック後アップロードしたい

  • 困ってます
  • 質問No.22762
  • 閲覧数229
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 50% (10/20)

ryouchiです。
現在下記環境でWebブラウザよりファイルのアップロードを行うサーバアプリケーションを作成しています。
---
Webサーバ:WindowsNT4.0 SP4+IIS4.0+ColdFusion4.5
クライアント:
 Windows 95/98/ME/NT WorkStation
  InternetExplorer(4.0/4.5/5.0/5.5)
  Netscape Communicator 4.7
 MacOS 8.1/8.6/9.04
  Netscape Communicator 4.7
---
Macでは「:」はディレクトリセパレータとしてシステムが利用しているので「:」を含むファイル名は使えません。
Windowsでは「/」「\」・・・などは使えません。

NTサーバが認識不可能なファイル名のついたMacのファイルをアップロードする際に、<input type="FILE">で選ばれたファイルがWindowsまたは、Macで使えないファイル名ならばJavaScriptでチェックしアラートを表示するようなことは可能でしょうか?
また、<input type="FILE" name="fname">でファイルを選択したとき、このfnameのvalueには絶対パスが入ると思うので単純にvalueの値に未使用の文字が使われているという判断では不十分です。

Macから「Macintosh HD:12/1データ_1.doc」というフォルダ下にあるファイルは「/」が含まれているため送信できないようにしたいのですが、上記のvalueの判断のみでは、「Macintosh HD:12/1フォルダ:データ_1.doc」というデータも絶対パス内に/が入っているため送付できません。

またサーバ内では送信したファイル名はクライアントのマシンで付いていた名前を利用したいので、サーバ側で適当な名前をつけることは考慮しません。
要するに<input type="FILE">を用いたファイルアップロードの際、Mac・Winのどのブラウザからでも送られるファイル名をチェックし、問題のあるファイル名ならば送信できない(アラートを表示)したいのです。
有識者のかた、よろしく御教授ください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル9

ベストアンサー率 47% (42/89)

ソースで提案できなくて申し訳ありませんが、下記のような方法では取れないでしょうか?

(イベントはONCLICKがいいかと思います。)
1.正規表現を用いて、ファイル名のみを抽出
送信されたファイル名の最後のセパレータ(Macの場合は「:」、Winの場合は「\」)の後ろ側全て、という抽出方法で、取れると思います。

2.抽出したファイル名から使用不可の文字を検出

3.使用不可の文字があればアラート、そうでなければ(CGIへ?)SUBMIT

なにがしかのヒントになれば幸いです。
お礼コメント
ryouchi

お礼率 50% (10/20)

さっそくの御回答ありがとうございます。
調べてみた結果、Macの場合はファインダー上では、「:」がセパレータになっているのですが、ブラウザ上(JavaScriptで絶対パスをGetした場合)では「/」がセパレータとなっているようです。
ですから、ファイル名が「test_1/1.pdf」というファイル名(Macではこれはファイル名としてつけられる)は、最後のセパレータ以降を取得すると、「1.pdf」となり、違うファイル名として認識されてしまうのです。
なので、実際の解決方法として、少し悩んでいる次第です。
投稿日時 - 2000-12-28 14:04:02


  • 回答No.2
レベル9

ベストアンサー率 47% (42/89)

>(JavaScriptで絶対パスをGetした場合)では「/」がセパレータとなっているようです。

質問の趣旨を勘違いしていたようです。ごめんなさい。m(_ _)m

Javascriptで絶対パスをGetするのではなく、INPUTタグのValueを引いてもダメなんですか?
とするとJavascriptではなくCGI側で判断してするしかないのではないでしょうか?

とりあえず、Web検索で見つけたCGIのURLをつけます。
参考にもならなくなってしまってすみませんxxx
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ