0

挿入物付きの写真をアップロードする方法を学んでいます。これまでのところ、画像を「写真」フォルダにアップロードしました。それはうまくいきます。「image」という名前のblobフィールドを作成しました。

ブロブフィールドにパスが表示されるのでしょうか、それとも実際の写真が表示されるのでしょうか。混乱している。

http://jsfiddle.net/zEZD7/

<?
$order = "INSERT INTO reg_add (connect_date, 
   reg, 
   first_name, 
   last_name,
   image)

VALUES

('$_POST[connect_date]', 
     '{$_POST[reg]}nv', 
     '$_POST[first_name]', 
     '$_POST[last_name]',
     '$_POST[image]')";

$new_image = 'photos/'.basename( $_FILES['image']['name']);
    if(move_uploaded_file($_FILES['image']['tmp_name'], $new_image)) {
        // The images was uploaded
  } else{
header("location: reg_add_fail_IMAGE.php"); 
}

$sql = "INSERT INTO image (path) VALUES ('" . mysql_real_escape_string($path) . "')";

$result = mysql_query($order);
?>

形:

<form id="form_register" method="POST" action="reg_add.php">

   <input class="req-string bx short" type="text" name="connect_date" id="connect_date">
   <input type="hidden" name="MAX_FILE_SIZE" value="100000">
   <input class="req-string bx long caps" type="text" name="reg" id="reg">
   <input class="req-string bx long" type="text" name="first_name">
   <input class="bx long" type="text" name="last_name">

   Choose a image to upload: <input name="image" type="file">
   <input id="rbSubmit" class="rb2 rbSubmit" type="submit" value="submit">
</form>
4

1 に答える 1

0

フォームを作成し、ユーザーに詳細を入力して写真をアップロードしてもらい、それを表示したいと思いますか?

もしそうなら、MySQl に画像を保存しません。サーバーのファイル システムの WWW ルート (ブラウザからアクセスできるディレクトリ) から離れた場所に画像をアップロードし、画像ファイルのパスをchar 列に格納します。

表示したい場合は、DB クエリから取得した画像のソースを含むタグを出力するだけです。

また、コードは、ユーザー入力を取得してデータベースに直接追加していることを示唆しているようです。これは、セキュリティの観点から非常に悪いことです。最初に入力の検証を行う必要があります (Google と SQL インジェクション攻撃)。

于 2012-04-28T16:23:16.410 に答える