[17859]
名前を付けて保存
投稿者:おめが さん
2001-09-05 11:03:27
仕事上、困っているのでおたずねします。
ファイルのダウンロードなどで右クリックして「名前を付けて保存」という制御についてお聞きします。
具体的には、「名前を付けて保存」の画面に「ファイルの種類」というのが選択肢として現れますが、選択肢はファイルの拡張子を見てOSがかってに出しているものなのでしょうか?
それともアプリケーションから指定できるものなのでしょうか?
実は会社で作った(自分ではない)ダウンロードソフトがあるのですが、ファイル名に「.txt」が付いていないのに「ファイルの種類」の選択子として「ドキュメント」が登場するパソコンと「テキスト文書」が登場するパソコンがあるのです。
「テキスト文書」が選択子のパソコンでは、ダウンロードされたファイル名に「.txt」が自動的に付いてしまうので、困っています。
どうにかして「ドキュメント」を選択肢として登場させたいのでが、何かよい方法はないものでしょうか?
作った本人に聞いても、アプリ側では何も制御していないと言います。
ファイル名を「"」でいちいちくくる運用は避けたいです。
自分は、WEBプログラムにはあまり詳しくありません。
OSはWindowsNT4.0です。
そのあたりに詳しい方がいらっしゃったら教えてください。
HPの紹介でもいいです。
お願いします。
-
YU さん
2001-09-05 13:41:22
「名前を付けて保存」で表示されるファイルの種類は、拡張子と関連付けを見て、OSが表示しています。
ですから、関連付けられているアプリケーションが異なっていると、マシンごとに違った表示になってしまいます。
-
たなべ さん
2001-09-05 15:35:41
「すべて」を選択できませんか?
-
おめが さん
2001-09-05 15:50:07
YUさん、ご返事ありがとうございます。
予想通りのご回答ですが、問題解決は難しそうです。
元ファイルに拡張子が付いている可能性もあわせて、調べてみます。
-
おめが さん
2001-09-05 15:51:35
たなべさんありがとうございます。
「全てのファイル」でもやはり拡張子が自動的に付いてしまいます。
-
たなべ さん
2001-09-05 19:09:08
MIMEがtext/plainとかになってしまっているのでは?
-
かげまる さん
2001-09-05 20:59:59
>作った本人に聞いても、アプリ側では何も制御していないと言います。
それはおかしいですね?(^^;
保存のコモンダイアログでは「ファイルの種類」はプログラミング時点である程度指定できますし、します。保存しようとするファイルを見て拡張子をつけているのはアプリ側の制御のはずですが・・。
独自アプリケーションということで、一応ソースを見直してもらったほうがいいかも・・。
さすがに判断ロジックまでは推測できませんし。
-
McBenie さん
2001-09-06 01:01:05
「名前を付けて保存」のダイアログは、APIレベルで GetSaveFileName あたりが
使われているんでしょう。 上でかげまるさんがおっしゃってるように、ファイルの種類と
拡張子との対応はこのAPIでアプリ側が制御します。
ファイルの種類がパソコン毎に違って表示されるのは、おそらく
このファイルの種類と拡張子との対応をレジストリ等から組み合わせているんでしょう。
アプリの制作者に文句?を言うのが解決の早道だと思います(^^;
-
PC9821Na15 さん
2001-09-06 03:07:48
>作った本人に聞いても、アプリ側では何も制御していないと言います。
つまり、プログラムで考慮されてないから、システムが、適当に付けてると言うことです。
バグと言ってもいいと思います。
作成者に直させましょう。
-
おめが さん
2001-09-07 22:12:30
いろいろとご意見ありがとうございます。
プログラムというのいは、Perlで書かれていてHTMLを組み立てる仕組みになっているようです。
見せてもらいましたが、組み立てられた結果のファイル名には、拡張子は付いていませんでした。
また、正常ケースでも異常ケースでも組み立てられたHTMLは全く同じでした。
ということは、やはりOSの問題かもしれません。
-
おめが さん
2001-09-07 22:14:11
たなべさん、
>MIMEがtext/plainとかになってしまっているのでは?
って何ですか?
ちょっと気になっています。
-
かげまる さん
2001-09-08 02:16:11
てっきりWindowsアプリケーションかと思ったのですが。
Perlということはブラウザで動作するwebベースのダウンローダー??
PerlによるcgiでJavaスクリプト込みのHTMLを生成させて、その中で「ファイルを開く」ダイアログを呼び出しているカンジでしょうか。webベースのアップローダーではそういう形はよくありますね。
となると話は別で、OS側の設定ということになってきそうな・・。
-
PC9821Na15 さん
2001-09-08 04:51:45
OSの設定と言うよりも、個々のマシンの設定された内容がそのまま出てると言うことだと思います。
必要なら、拡張子の関連付けを確認してみればいいと思います。
ところで、私はCGIをよく知らないのですが、かなりプログラム的な細かいことが出来たと思うので、
拡張子の設定も出来るのではないかと思います。
この辺は識者の方、お願いします。