画像をDBに登録できない
現在、DBに画像を登録するプログラムを作成しているのですが、登録できません。ファイルの大きさが問題なのかと思い、小さい画像(1.5M)でためしてみましたが、やはりできませんでした。
DBのフィールド名なども正しいことを確認しています。
原因、対策がわかる方がいらっしゃいましたら教えてください。
よろしくお願いします。
----------------------
<?php
if($_POST["submit"]=="upload")
{
// データベースに接続する処理。
略
mysql_select_db( $dbname );
mysql_set_charset("utf8"); // 文字コードを指定します。
// ファイル情報を取得
$file = $_FILES["userfile"]["name"];// 元のファイル名
$type = $_FILES["userfile"]["type"];// MIME型
$tmpname = $_FILES["userfile"]["tmp_name"];// テンポラリファイル名
$size = $_FILES["userfile']['size"];//サイズ
// 画像サイズを取得
list($width, $height) = getimagesize($tmpname);
// 画像データを取得
$contents = file_get_contents($tmpname);
// エンコード
$contents = base64_encode($contents);
// SQL用にエスケープ
$contents = mysql_real_escape_string($contents,$conn);
// 格納
$strsql = "INSERT INTO DBpractice ("."size, imgtype, width, height, imgdata ".") values ( "."$size, '{$type}', $width, $height, '{$contents}'".");";
$res = mysql_query($strsql,$conn);
print mysql_error($conn);
echo "更新を完了しました。";
mysql_close($conn);
}
?>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>test</title>
<link href="common/css/base.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form name="rfform" action="<?=$_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data" method="post">
<input type="hidden" name="act" value="upload">
<input type="file" name="userfile">
<input type="submit" name="submit" value="アップロード">
</form>
</body>
</html>
---------------------------
お礼
なるほど、Perlと同じ感じになるんですね。 負荷軽減策を講じて、しばらくは 安定して稼働できそうなんですが、 やっぱり専用サーバだと、なにか問題が起こった時に、 解決にかかる時間が結構大きくなってしまうので、 ホスティングで その部分を人に任せられるのはやはり魅力です。 RapidSiteも見てみます。 ありがとうございました。