- ベストアンサー
ファイルのアップロード
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
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考にされているファイルアップロードのソースなのですが、アップロードされたファイルを書き出す処理(22行目ぐらいから?)でOPENした後、書き出す前に「binmode F」が必要なのではないでしょうか?
その他の回答 (1)
- komomo003
- ベストアンサー率66% (2/3)
アスキーモードで転送されていませんか? txtファイルやhtmlファイルなどはアスキーモードですが、pdfファイルなどはバイナリモードで転送しなければ、ファイルが使えなくなってしまいます。 ファイル転送ソフトでFFFTPを使われているのでしたら、赤色でAと緑色でBのボタンがあります。このAを選択していませんか? また、メニューバーにある「オプション」で設定をご確認ください。
お礼
ご回答ありがとうございます。 まだ、ローカルでのテストしかしていないんです… -cgi-bin -data/test/←ココ以下にファイルを置くように設定してあるのですが… ローカルの段階でもアスキーモードとバイナリモードを意識しなければいけないのでしょうか? 無知なものですみません…
お礼
ありがとうございます! 『binmode F』追加したら表示されました!! binaryにしていしないといけなかったんですね。 ありがとうございました。
補足
『この回答は参考になった』ボタンがランタイムエラーになってしまって押せませんでした… 本当にありがとうございました!