はじめまして。CGIにperlを使用して、ブラウザからファイルのアップロードを実現させようとしています。
binmode ( STDIN );
read ( STDIN, $tBUF, $BUFSZ)
のようにして読み込み、バイナリーモードで書き出しています。
画像系はうまくいくのですが、テキスト系をアップロードするして、アップロードしたものをFTPソフトでASCKIIモードでダウンロードすると、どの文字コードの場合でも、一行ごとに余計な改行がひとつはいってしまいます。
バイナリーモードだとうまくいきます。
FTPソフト NextFTP2.02
使用OS:windows2000 workstation
サーバーのOS:SunOS 5.8
ちなみみにサーバーがRedhat5.0のときはうまくいきました。
こういった原因はが、さっぱりわかりません。誰か教えてください。
No.1ベストアンサー
- 回答日時:
テキストの場合は、アスキーモードでアップロードするのは少々面倒です。
テキストファイルと分かっているファイルの場合、意識的に改行コードから \r をすべて除いてあげなくてはいけません。
NextFTP は、改行コードが \n と \r のどちらが来てもいいように、この2つのコードを「それぞれ」\n\r に変換してしまっているからです。
この機能はIEにも搭載されています。
RedHat はおそらく、Content-type: text がくると自動的にそれを探知して改行コードの問題を解決してくれるんだと思います。
これは RedHat 固有の機能だと思うので、これには期待しない方がいいでしょう。
置き換え処理は、シフトJISの場合、正規表現で s/\r//g; とすればOKです。
この回答への補足
有難うございます。参考になります。補足で質問させてください。
改行コードCR(\n)でアップロードしても変な改行がはいってしまいます。
テキストでも、画像でもサーバー上で、バイナリーとして読み込んで保存する場合は、改行の問題はかかわってこないということですよね。問題となるのは、その保存された、テキストをNextFTPでダウンロードするときということでしょうか?
このときたとえば、改行コードCRLF(\r\n)の場合、\n\r\n\rに変換されてしまうといことでしょうか?
また、IEのformタグでマルチポートの指定をしていても、アスキーモードになってしまうのでしょうか?
No.2
- 回答日時:
そうです。
これはダウンロードするときの問題なので、アップロードするときは規定通り動いているはずです。
ですので、IEのマルチポートはアップロード時の話なので、やっぱり駄目なはずです。
この回答への補足
有難うございます。たびたびすいません。あと一つだけ質問させてください。
1、改行コードCRLF(\r\n)の場合、\n\r\n\rは、一行ごとのはなしですよね?
2、検証してみたところ、IE5をつかっているのですが、IEでアップロードしたものをNextFTPでバイナリーモードでダウンロードする場合は、何の問題もありませんでした。これは、なぜでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ドメイン・サーバー・クラウドサービス 自作サイトをサーバーにアップロードしたのですが… 2 2022/11/08 18:12
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- その他(IT・Webサービス) WPからダウンロードしたファイル名を指定したい 2 2022/04/08 08:31
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- YouTube 新しく買ったデスクトップPCを使用すると、今までのGoogleのアカウントが使えなくなった。 1 2023/01/07 00:41
- PHP 画像ファイルの名前をそのままURLにする 3 2022/10/16 11:18
- Google Drive Googleドライブについて 3 2023/08/06 12:19
- WordPress(ワードプレス) WordPressのサイトにPDFをアップロードした際にGoogleなどの検索結果に出ないでほしい 1 2022/08/03 10:44
- サーバー FFFTPで特定サイトだけUploadできない 4 2022/08/27 14:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA メール作成について ...
-
CGIを勉強しています。¥n(改...
-
エクセルで「改行コード」を「...
-
perlで、[ \\r\\n , \\n ]の意...
-
連想するもの教えてください
-
ポインター引数の関数でコンパ...
-
10Mバイトて文字数に すると何...
-
stable diffusionのエラー
-
バイナリとBCDコード
-
UTF-8で5~6バイトになる文字コ...
-
COBOLのCOMP形式について
-
エクセルシート名の制限を変更...
-
Excel 1セル当りの文字数が2...
-
char str[256]の256の意味は?
-
VBAでUnicodeしか存在しない文...
-
バイト列とバイナリ列の違いが...
-
CSVから構造体へ代入
-
SQLで1バイト、2バイト混在...
-
1KBが1024byteな理由
-
C言語についてです! 同じ年の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA メール作成について ...
-
Excelで、HTMLタグだけを削除す...
-
Line Inputにて改行があっても...
-
Rstudioによるテキストマイニン...
-
CGIを勉強しています。¥n(改...
-
改行コードがそのまま表示され...
-
【HELP!!】Excelから保存したtx...
-
perlで、[ \\r\\n , \\n ]の意...
-
エクセルで「改行コード」を「...
-
テキストエリアの<br />を非表...
-
連想するもの教えてください
-
HTMLにcgiを使って表示して...
-
テキストエリア内でタグ<BR>を...
-
kboardのイベントを増やしたい
-
textarea形式のフォームで複数...
-
ホームページビルダーで行間を...
-
Yomi-Searchについて教えてくだ...
-
テキストボックスに入力された...
-
KENT-WEBのClipMailでのチェッ...
-
datの改行
おすすめ情報