2016-12-28 29 views
1

データベースのファイル名を使用してサーバー上のフォルダ内の対応するファイルを取得するにはどうすればよいですか?データベースを使用してフォルダから画像を取得するにはどうすればよいですか?

現在、私は動作していますが、コメントに対応するイメージを取得する方法がわからないコメントセクションがあります。

MY DATABASE: コメント

STRUCTURE: CID a_iをプライマリ UID VARCHAR(128) 日付日時 メッセージテキスト iamgesのVARCHAR(50)

HTML:

<?php 
echo "<form method='POST' enctype='multipart/form-data' action='".setComments($conn)."'><br> 

     <input type='hidden' name='uid' value='Anonymous'> 
     <input type='hidden' name='date' value='".date('Y-m-d H:i:s')."'> 

     Select a file:<br><input type='file' name='image' id='image'><br<br><br> 
     Comment:<br> <textarea name='message'></textarea><br><br> 
     <button type='submit' name='commentSubmit'>Upload</button><br><br><br> 

</form>"; 
getComments($conn); 
?> 

機能:

<?php 

function setComments($conn) { 
    if (isset ($_POST['commentSubmit'])) { 
     $uid = $_POST['uid']; 
     $date = $_POST['date']; 
     $message = $_POST['message']; 
     $file_name = $_FILES['image']['name']; 

     $sql = "INSERT INTO comments (uid, date, message, images) values ('$uid','$date','$message','$file_name')"; 
     $result = mysqli_query($conn, $sql); 
    } 
}  
     if(isset($_FILES['image'])){ 
      $errors= array(); 
      $file_name = $_FILES['image']['name']; 
      $file_size = $_FILES['image']['size']; 
      $file_tmp = $_FILES['image']['tmp_name']; 
      $file_type = $_FILES['image']['type']; 
      $tmp = explode('.', $file_name); 
      $file_ext = end($tmp); 

      $expensions= array("jpeg","jpg","png"."gif"); 

      if(in_array($file_ext,$expensions)=== false){ 
      $errors[]="extension not allowed, please choose a JPEG, GIF, or PNG file."; 
      } 

      if($file_size > 2097152) { 
      $errors[]='File size must be excately 2 MB'; 
      } 

      if(empty($errors)==true) { 
       move_uploaded_file($file_tmp,"uploads/".$file_name); 
       echo "Successfully uploaded file!"; 

      }else{ 
       print_r($errors); 
    } 

} 
function getComments($conn) {  

    $sql = "SELECT * FROM comments ORDER BY date DESC LIMIT 10"; 
    $result = mysqli_query($conn, $sql); 
    while ($row = $result->fetch_assoc()) { 
     echo $row['uid']."<br>"; 
     echo $row['date']."<br><br>"; 
     echo $row['message']."<br><br>"; 
    } 
} 

答えて

0

ファイルの名前はデータベースのimages列にあります。あなたと同じ方法でechodatemessageの値 - あなたはechoイメージの名前を付けることができます。

あなたはブラウザがイメージ(だけではなく、テキストなど)として、それを表示したい場合は、<img>タグを使用する必要があります

echo "<img src=\"uploads/{$row['images']}\" /><br /><br />"; 

を、あなたのファイルをアップロードしたので、私は上記のコード(でuploadsフォルダを使用そのフォルダに)。

あなたのコードはで、SQLインジェクションに脆弱であることに注意してください。bobby tablesについて詳しくは、this questionを使用して回避する方法をご覧ください。

+0

私はそれがサムネイルに変更するために.thumb用のCSSで設定している場合、 –

+0

と思っています。img srcをイメージクラスに変更するにはどうすればよいですか? –

+0

をクリックしてクリックできるようにしますか? –

関連する問題