ホームページ上からサーバーにあるdocファイル(ワードファイル)をダウンロードさせたいのですが、左クリックをするとダイアログが出ないで、IE内でワードが開いてしまいます。
ワードを開かせずにdocファイルを保存させる方法はありますでしょうか?
右クリックで「対象をファイルに保存」は使用しないでやりたいのですが・・・
perlでdocファイルのバイナリを書き出す、みたいな方法なのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

拡張子をdoc以外にしてサーバ上に置く、


でゲット後に拡張子を書き換えてもらう
だけで解決すると思います。
    • good
    • 0

Word2000以降が入っていると、ワードの文章はInternet Explorer上で見られるようになるので、"docファイルはダウンロードするべきものではなく、見るもの" という情報が相手側のコンピュータに記録されています。


つまり、相手側の問題なので直せないでしょう。
blue_leoさんのいうとおりに拡張子を変えるくらいしか手段はないです。

また、インターネットのマナーからすると、docファイルをそのまま置くのは相手に失礼です。
通常はLZHやZIPなどで圧縮してから置くので、そのような不都合は起こりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QPerlを用いて、XMLファイルの中のキーワードの個数を数えるプログラ

Perlを用いて、XMLファイルの中のキーワードの個数を数えるプログラムを組もうと思っています。
次のようなXMLの中の<keyword>のタグに囲まれた文字列を数えるプログラムです。

<?xml version="1.0" encoding="UTF-8"?>
<grant_award_list>
<grant_award id="1001">
<title>タイトル1</title>
<keywords><keyword>A</keyword><keyword>B</keyword></keywords>
</grant_award>
<grant_award id="1002">
<title>タイトル2</title>
<keywords><keyword>B</keyword></keywords>
</grant_award>
</grant_award_list>

このようなときに、次のようにキーワードとその出現回数が記載されたXMLファイルにしたいと考えています。

<?xml version="1.0" encoding="UTF-8"?>
<keywords>
<keyword>A</keyword>
<count>1</count>
</keywords>
<keywords>
<keyword>B</keyword>
<count>2</count>
</keywords>

具体的なプログラムのコードを教えてください。よろしくお願いします。

Perlを用いて、XMLファイルの中のキーワードの個数を数えるプログラムを組もうと思っています。
次のようなXMLの中の<keyword>のタグに囲まれた文字列を数えるプログラムです。

<?xml version="1.0" encoding="UTF-8"?>
<grant_award_list>
<grant_award id="1001">
<title>タイトル1</title>
<keywords><keyword>A</keyword><keyword>B</keyword></keywords>
</grant_award>
<grant_award id="1002">
<title>タイトル2</title>
<keywords><keyword>B</keyword></keywords>
</grant_award>
</grant_award_list>

...続きを読む

Aベストアンサー

最後にutf8で出力しているところで文字化けしているんじゃないですか?
cp932、shiftjis、eucjpなど適切なエンコードを指定して下さい。

あまり関係ないけどちょっと書き直し(全角空白あり注意)
use XML::TreePP;
use Encode;

my $file = shift || 'tmp.xml';
my $tpp = XML::TreePP->new( utf8_flag => 1, force_array => ['keyword'] );
my $tree_in = $tpp->parsefile($file);

my %count_of = ();
for my $hash_ref ( @{ $tree_in->{grant_award_list}->{grant_award} } ) {
  my $keyword = $hash_ref->{keywords}->{keyword};
  for my $item ( @{$keyword} ) {
    $count_of{$item}++;
  }
}
my $tree_out = {};
$tree_out->{keywords}
  = [ map { { keyword => [$_], count => $count_of{$_} } } keys %count_of ];

my $xml = encode( "utf8", $tpp->write($tree_out) );
print $xml;

最後にutf8で出力しているところで文字化けしているんじゃないですか?
cp932、shiftjis、eucjpなど適切なエンコードを指定して下さい。

あまり関係ないけどちょっと書き直し(全角空白あり注意)
use XML::TreePP;
use Encode;

my $file = shift || 'tmp.xml';
my $tpp = XML::TreePP->new( utf8_flag => 1, force_array => ['keyword'] );
my $tree_in = $tpp->parsefile($file);

my %count_of = ();
for my $hash_ref ( @{ $tree_in->{grant_award_list}->{grant_award} } ) {
  my $keyword = $hash_ref->{...続きを読む

Qperl でrequireされたファイル自身のフルファイル名を取得する

perl でrequireされたファイル自身のフルファイル名を取得する方法を教えてください

__FILE__ だとパス情報がありません。

また 起動したスクリプトではないので
$ENV["SCRIPT_FILENAME"] , $0
では、取得できません。

どこに格納されているのでしょうか?
%INCでは、無理ですし、@INCを使う方法では、信憑性にかけます

requireするときにパスをグローバル変数に代入せずに
どうしてもrequireされたファイル自身で
確実に正確な同じフォルダ名を取得する必要があるのでお願いします。

(※phpでは、__FILE__でフルパスで返ってくるので私の探し方が悪いだけだと思っています)

perlでの取得方法の情報を
お手数ですがよろしくお願いします

Aベストアンサー

use Cwd 'abs_path';
print abs_path(__FILE__);

または

use File::Spec;
print File::Spec->rel2abs(__FILE__);

どちらも標準モジュールのようなので、すぐ利用可かと。

Qperlであるcsvファイルのキーワードからキーワード間の文字列を抽出したい

perl初心者です。

地名1.csv 地名2.csv の2つのファイルがあったとします。

==地名1.csv==
a,b,札幌,c,d,
e,f,沖縄,f,r,
t,u,東京,w,e,
r,u,千葉,e,q,
l,o,金沢,e,c,
p,l,高知,w,w,

==地名2.csv==
沖縄,千葉
高知,千葉

ここで、地名2.csvの1行に書かれた地名に挟まれた行を地名1.csvから
ごっそりと抜き出したのです。。
具体的には、実行すると、

e,f,沖縄,f,r,
t,u,東京,w,e,
r,u,千葉,e,q,

r,u,千葉,e,q,
l,o,金沢,e,c,
p,l,高知,w,w,

が抽出され、それが別ファイルに書き込めたら一番なのです。

地名2.csvを見ての通り、地名2.csvの地名の順番は
地名1.csvの順番と逆なこともあるので、
if文で条件分岐をすればいいのだと思うのですが、
ここがうまく書けません。。

どなたかお知恵を貸していただけないでしょうか。
どうぞどうぞよろしくお願い致します。

perl初心者です。

地名1.csv 地名2.csv の2つのファイルがあったとします。

==地名1.csv==
a,b,札幌,c,d,
e,f,沖縄,f,r,
t,u,東京,w,e,
r,u,千葉,e,q,
l,o,金沢,e,c,
p,l,高知,w,w,

==地名2.csv==
沖縄,千葉
高知,千葉

ここで、地名2.csvの1行に書かれた地名に挟まれた行を地名1.csvから
ごっそりと抜き出したのです。。
具体的には、実行すると、

e,f,沖縄,f,r,
t,u,東京,w,e,
r,u,千葉,e,q,

r,u,千葉,e,q,
l,o,金沢,e,c,
p,l,高知,w,w,

が抽出され、それが別ファイ...続きを読む

Aベストアンサー

文字コードをutf-8であることをきちんと指定するようにしました。
また、地名2.csvの県名が地名1.csvにないとき、そこで打ち切らず、処理を続行するようにしました。
エラー時の文字化けも発生しないようにしました。こちらをまるまる入れ替えてください。
---------------------------------------------------------
use strict;
use utf8;
use Encode;
binmode(STDOUT, ":utf8");
#Usage表示
if (scalar(@ARGV) != 3){
printf("%s 地名1.csv 地名2.csv 出力ファイル名\n",$0);
exit 10;
}
my $fname1 = $ARGV[0];
my $fname2 = $ARGV[1];
my $fname3 = $ARGV[2];
our @lines = ();
our %names = ();
#ファイルを読み込み、内部テーブルへ展開
&readfile($fname1);
#出力ファイルオープン
open(OFH,">:encoding(:utf-8)",$fname3) || die "$fname3 オープンエラー<$!>";
#ファイルを読み込み、範囲内を出力
&readfile2($fname2);
#出力ファイルクローズ
close(OFH);
#ファイルを読み込み、内部テーブルへ展開
sub readfile
{
my $fname = shift(@_);
$fname = $fname;
open FH,"<:encoding(:utf-8)",$fname || die "$fname オープンエラー<$!>";
my $i = 0;
while(<FH>){
my @elm = split(/,/,$_);
$names{$elm[2]} = $i;
push(@lines,$_);
$i++;
}
close(FH);
}
#ファイルを読み込み、範囲内を出力
sub readfile2
{
my $fname = shift(@_);
$fname = $fname;
open FH,"<:encoding(:utf-8)",$fname || die "$fname オープンエラー<$!>";
my $i = 0;
while(<FH>){
$i++;
chomp($_);
my @elm = split(/,/,$_);
if (exists $names{$elm[0]}){
}else{
printf("%d行 %s 地名1.csv になし\n",$i,$elm[0]);
print $_,"\n";
next;
}
if (exists $names{$elm[1]}){
}else{
printf("%d行 %s 地名1.csv になし\n",$i,$elm[1]);
print $_,"\n";
next;
}
my $st = $names{$elm[0]};
my $en = $names{$elm[1]};
&outfile($st,$en);
}
close(FH);
}
#出力ファイルへ出力
sub outfile
{
my $st = shift(@_);
my $en = shift(@_);
#順番が逆ならひっくり返す
if ($st > $en){
my $tmp = $st;
$st = $en;
$en = $tmp;
}
for (my $i = $st; $i <= $en; $i++){
print OFH $lines[$i];
}
}
-----------------------------------------------------
以下実行結果です。
地名1.csv
a,b,札幌,c,d,
e,f,沖縄,f,r,
t,u,東京,w,e,
r,u,千葉,e,q,
l,o,金沢,e,c,
p,l,高知,w,w,

地名2.csv
沖縄,千葉
高知,千葉
高知2,千葉2
高知2,千葉3

$ perl sample.pl timei1.csv timei2.csv out.csv
3行 高知2 地名1.csv になし
高知2,千葉2
4行 高知2 地名1.csv になし
高知2,千葉3

出力結果
$cat out.csv
e,f,沖縄,f,r,
t,u,東京,w,e,
r,u,千葉,e,q,
r,u,千葉,e,q,
l,o,金沢,e,c,
p,l,高知,w,w,

文字コードをutf-8であることをきちんと指定するようにしました。
また、地名2.csvの県名が地名1.csvにないとき、そこで打ち切らず、処理を続行するようにしました。
エラー時の文字化けも発生しないようにしました。こちらをまるまる入れ替えてください。
---------------------------------------------------------
use strict;
use utf8;
use Encode;
binmode(STDOUT, ":utf8");
#Usage表示
if (scalar(@ARGV) != 3){
printf("%s 地名1.csv 地名2.csv 出力ファイル名\n",$0);
exit 10;
}
my $fname1 = $ARGV...続きを読む

QPerl5.8とPerl5.6は共存可能でしょうか?

WindowsでActivePerlを使っています。現在Perl5.8を入れていますが
後からPerl5.6を入れて、Perl5.6を優先的に使いたいのですが
Perl5.8とPerl5.6の共存は可能でしょうか?

Aベストアンサー

おいらのやり方  基本的には#1さんのと同じですが
E:ドライブにApacheなども入れているので
Perl5.6を e:\usr\binに、Perl5.8をE:\usr\local\bin にいれます。
ApacheとPerlを同じドライブに入れれば .cgiとして使うときにshebang文を
#! /usr/bin/perl と記述することが出来ます。

1.Perlのインストール前に e:\usr その下に\localというフォルダを作っておきます。
2. Perl5.8インストール時 Choose Setup Typeのところで Customを選びます
3.次の画面で [Browse ]ボタンを押して e:\usr\localを指定します。<=e:\usr\local\binでは有りません
4. NEXTを押してインストールを続けます

次に5.6のインストール
5. Perl5.8と同じようにしてpathを今度は e:\usr を指定します

両方インストールが終わったらOSの環境変数pathで
perl5.6のあるe:\usr\binを5.8のあるe:\usr\local\binよりも上位にします
pathの設定方法は
http://www.gihyo.co.jp/book/2000/179111/download/index1.html を参考に
;で複数のエントリーを記述している場合、例えばpathの記述が
c:\windows;c:\windows\command;e:\usr\local\bin;e:\usr\bin なら
c:\windows;c:\windows\command;e:\usr\bin;e:\usr\local\bin にするか#1さんの言う様にe:\usr\local\binを消します

WIN98などで autoexec.batに
PATH C:\windows;C:\windows\command
PATH %PATH%;e:\usr\local\bin
PATH %PATH%;e:\usr\bin   <=この場合はこの行を上に変更
http://www.hir-net.com/soft/doc/install.html
 (WIN95/98では再起動後に有効になります)

うまくいったか確認はコマンドラインで
c:\hoge> perl -v (perl -V だともっと詳しい情報が表示される)

おいらのやり方  基本的には#1さんのと同じですが
E:ドライブにApacheなども入れているので
Perl5.6を e:\usr\binに、Perl5.8をE:\usr\local\bin にいれます。
ApacheとPerlを同じドライブに入れれば .cgiとして使うときにshebang文を
#! /usr/bin/perl と記述することが出来ます。

1.Perlのインストール前に e:\usr その下に\localというフォルダを作っておきます。
2. Perl5.8インストール時 Choose Setup Typeのところで Customを選びます
3.次の画面で [Browse ]ボタンを押して e:\usr\loca...続きを読む

QVineLinux2.6でPerl5.6.13から Perl5.8にするには

VineLinux2.6でPerl5.6を使っています。
apt-get upgrade perlで簡単にアップグレードできると思っていましたが、Perl 5.6.13にアップグレードしただけで、5.8までできませんでした。rpm -eでアンインストールしてから行おうとしましたが、たくさん依存関係がでました。また、ActivePerl5.8用のrpmも存在していますが、これを単に rpm -Uvhでインストールしても
依存関係で問題ないでしょうか?

Aベストアンサー

Vine Linux 2.6 標準のperlに対してActivePerl5.8をアップグレードできるのかな・・・・? 先に「-i」でActivePerlを入れてようとしてみてはどうだろうか。

perl5.6を先に消したいのであれば、依存関係にあるパッケージを全て削除する必要があるが、例えばApacheの設定ツールなど、Perlに依存したツール類は結構多いので、依存関係を無視して削除した方が良いかも知れない。後でperl5.8でもそれらは動くと思われるし。

Vine標準のPerlの依存関係が山ほど出てくるのは、先述のツール類が多いが、後でperl5.8を入れるつもりならばあまり心配はないように思う。多分。


人気Q&Aランキング

おすすめ情報