2017-02-04 8 views
-2

これはPHPコードです。動作しません。イメージではなくイメージ名で保存します。 私はこの問題のためにserachedだが、私は解決策を見つけることができません。file_get_contents()を試しましたが、does not work.Iはサーバーやコードに問題があります。

<?php 
    $msg=""; 
    if(isset($_POST['submit'])){ 
     session_start(); 

     $target_dir="uploads/"; 
     $target_file=$target_dir . basename($_FILES["fileToUpload"]["name"]); 

     include 'dbh.php'; 

     $image=$_FILES['fileToUpload']['name']; 
     $image_tmp=$_FILES['fileToUpload']['tmp_name']; 
     $id=$_SESSION['id']; 
     $sql="UPDATE user SET image='$image' WHERE id='$id'"; 
     mysqli_query($conn,$sql) or Die("ERROR:" .mysqli_error($conn)); 

     if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_file)){ 
      $msg="Image uploaded successfully"; 
     } 
     else{ 
      $msg="There was a problem uploading image"; 
     } 

    } 

    ?> 




<form action="user_photo.php" method="post" enctype="multipart/form-data" target="iframe"> 
     <input type="file" name="fileToUpload" id="fileToUpload"> 
     <input type="submit" name="submit" value="Ngarko Foto"> 
     </form> 
+2

本当に 'uploads'ディレクトリにあるファイルの名前だけでなく、イメージをデータベースに保存しますか? – Barmar

答えて

1

file_get_contentsが有効です。しかし、画像データはバイナリなので、SQLに置き換えることはできません。準備されたステートメントを使用する必要があります。

$image = file_get_contents($_FILES['fileToUpload']['tmp_name']); 
$sql = "UPDATE user SET image = ? WHERE id = ?"; 
$stmt = mysqli_prepare($conn, $sql); 
mysqli_stmt_bind_param($stmt, "bi", $image, $_SESSION['id']); 
mysqli_stmt_execute($stmt) or die(mysqli_error("ERROR:" .$conn)); 
+0

ありがとうBarmar.uは素晴らしいです! –

+0

私はこれをどうすればいいのか説明できますか? plz @Barmar –

+0

あなたはそれのどの部分を理解していませんか?多分あなたは準備文に関するチュートリアルを読むべきです。 – Barmar

関連する問題