• ベストアンサー

ファイルのアップロード

CGI初心者です。 http://nais.to/~yto/tools/ssupload/ NAIS.TOさんのサイトのファイルアップロードのソースを実際に試してみているのですが、 txtファイルやdatファイルはアップロード後開くことができるのですが、 pdfやxlsファイルは『ファイルが壊れています』と言われ、 フォルダに保存はされているのですが、開くことはできません。 html画面では文字コードがs-jisなのに cgiになるとISOになるのが原因だったりしますでしょうか。 ご回答宜しくお願いいたします。 環境 IE6 APACHE HTTP SERVER 2.0.58 ActivePerl 5.8.8

質問者が選んだベストアンサー

  • ベストアンサー
  • nin2-y
  • ベストアンサー率43% (14/32)
回答No.2

参考にされているファイルアップロードのソースなのですが、アップロードされたファイルを書き出す処理(22行目ぐらいから?)でOPENした後、書き出す前に「binmode F」が必要なのではないでしょうか?

praymode
質問者

お礼

ありがとうございます! 『binmode F』追加したら表示されました!! binaryにしていしないといけなかったんですね。 ありがとうございました。

praymode
質問者

補足

『この回答は参考になった』ボタンがランタイムエラーになってしまって押せませんでした… 本当にありがとうございました!

その他の回答 (1)

回答No.1

アスキーモードで転送されていませんか? txtファイルやhtmlファイルなどはアスキーモードですが、pdfファイルなどはバイナリモードで転送しなければ、ファイルが使えなくなってしまいます。 ファイル転送ソフトでFFFTPを使われているのでしたら、赤色でAと緑色でBのボタンがあります。このAを選択していませんか? また、メニューバーにある「オプション」で設定をご確認ください。

praymode
質問者

お礼

ご回答ありがとうございます。 まだ、ローカルでのテストしかしていないんです… -cgi-bin -data/test/←ココ以下にファイルを置くように設定してあるのですが… ローカルの段階でもアスキーモードとバイナリモードを意識しなければいけないのでしょうか? 無知なものですみません…

関連するQ&A