人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlで画像アップロードするプログラムなのですが、手元のWindowsでは問題ないのですが、
さくらインターネットの「FreeBSD 7.1-RELEASE-p4 i386」で試すと添付画像のように壊れてしまいます。

原因がおわかりになるかたはいらっしゃいますか?

#!/usr/bin/perl -w
use strict;
use CGI;

my $query = new CGI;

# ファイル取得
my $fH = $query->upload('filename');

# ファイル保存
my $buffer;
open(OUT, "> file/test.jpg") or die("ファイルの保存に失敗しました。");
binmode(OUT);
while(read($fH, $buffer, 1024)){
print OUT $buffer;
}
close (OUT);
close ($fH) if ($CGI::OS ne 'UNIX'); # Windowsプラットフォーム用
chmod (0666, "file/test.jpg");

print "Content-type: text/html\n\n";
print "<img src=\"file/test.jpg\" /><br />\n";
print "test";
exit;


●質問者: takeru-c
●カテゴリ:インターネット ウェブ制作
✍キーワード:.jpg CGI EXIT FreeBSD HTML
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● TREEG
●60ポイント ベストアンサー

当方も、さくらを使っております。

.

同一のプログラムをアップロードし、試してみましたが、

問題無く動作します。

.

サーバ情報は下記の通りです。

OSバージョン FreeBSD 7.1-RELEASE-p4 i386

プラン STANDARD

CPU Intel(R) Pentium(R) M processor 2.00GHz

メモリー容量 2GB

Apacheバージョン Apache/1.3.41 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e

.

なお、CGIのファイル名をtest.cgiにして、HTML部分は、

<body>

<form action="test.cgi" method="post" enctype="multipart/form-data">

<input type="file" name="filename">

<input type="submit">

</body>

としています。

.

原因としては、テストに使っている、jpgの種類が不適当?(jpgには多くのバージョンが存在します)ちなみに、現在、hatena上ではその添付画像を見ることができません。

HTML部分が間違っている。

CGIやディレクトリのパーミッションが間違っている。

.hataccessの設定が間違っている。

などかもしれません。もう少し詳しく書いていただけると適切なアドバイスができるかと思います。

◎質問者からの返答

コメントありがとうございます。

▼サーバー情報です

OSバージョン FreeBSD 7.1-RELEASE-p4 i386

プラン STANDARD

CPU Intel(R) Xeon(R) CPU E3110 @ 3.00GHz

メモリー容量 3.25GB

Apacheバージョン Apache/1.3.41 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e

添付画像は大変失礼致しました。気が付きませんでした。

下記にアップロードいたしました。

http://f.hatena.ne.jp/takeru-c/20090421150434

▼html

<body>

<form action="test.cgi" method="POST" enctype="multipart/form-data">

変換する写真を選択してください:

<input type="FILE" name="filename" size="20" />

<input type="submit" value="変換する" />

</form>

</form>

▼パーミッション

test.cgi 705

/file 705

▼.hataccess

AddHandler cgi-script .rb .cgi

DirectoryIndex index.html index.rb index.cgi

▼テストに使っている画像

適当にウェブにあった画像を保存してテストしていました。

たとえばコレなど↓

http://ca.c.yimg.jp/news/20090421104522/img.news.yahoo.co.jp/ima...

よろしくお願い致します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ