2016-06-02 8 views
0

私はデータベースに画像のファイル名をアップロードしようとしています。画像自体はルートフォルダ内のフォルダに保存されます。PHPを自分のルートフォルダにあるデータベースとフォルダにアップロードする

私のコードでは、イメージ名はデータベースに保存できますが、イメージ自体はフォルダに保存されませんでした。何故ですか?

は、ここに私のコードです:私のコードの問題のようです

<?php 

include '../session.php'; 
require_once 'config.php'; 


if (isset($_POST['submit'])) { 

    $img_dir = "updated_photo/"; 
    $target_file = $img_dir . basename($_FILES["image"]["name"]); 
    $imageName = $_FILES["image"]["name"]; 
    $imageData = file_get_contents($_FILES["image"]["tmp_name"]); 
    $imageType = $_FILES["image"]["type"]; 

     if (substr($imageType, 0,5) == "image") { 
      $query = "UPDATE `crew_info` SET `image_name` = ? WHERE `id` = ?"; 
      $stmt = mysqli_prepare($conn, $query); 
      mysqli_stmt_bind_param($stmt, 'si', $imageName, $_POST['id']); 
      mysqli_stmt_execute($stmt); 
      $id = $_POST['id']; 

      header("Location: ../admin/view_all_info.php?id=$id"); 

     } 

     else { 

      echo "Image not Uploaded!"; 

     } 

} 

?> 

何?

+0

を試してみてください? – nospor

+0

あなたはhttp://php.net/manual/en/function.move-uploaded-file.phpを使用する必要があります – nospor

答えて

0

これを試しにファイルをアップロードするために使用することができますfile_put_contents

$target_file = $img_dir . basename($_FILES["image"]["name"]); 
$imageName = $_FILES["image"]["name"]; 
$imageData = file_get_contents($_FILES["image"]["tmp_name"]); 
// Write the contents back to the file 
file_put_contents($target_file, $imageData); 

使用目的のフォルダに置くことを忘れて、私はあなたのコードを編集しました。

<?php 

include '../session.php'; 
require_once 'config.php'; 


if (isset($_POST['submit'])) { 

    $img_dir = "../updated_photo/"; 
    $target_file = $img_dir . basename($_FILES["image"]["name"]); 
    $imageName = $_FILES["image"]["name"]; 
    $imageData = file_get_contents($_FILES["image"]["tmp_name"]); 
    $imageType = $_FILES["image"]["type"]; 

     if (substr($imageType, 0,5) == "image") { 
      $query = "UPDATE `crew_info` SET `image_name` = ? WHERE `id` = ?"; 
      $stmt = mysqli_prepare($conn, $query); 
      mysqli_stmt_bind_param($stmt, 'si', $imageName, $_POST['id']); 
      mysqli_stmt_execute($stmt); 
      file_put_contents($target_file, $imageData); 
      $id = $_POST['id']; 
      header("Location: ../admin/view_all_info.php?id=$id"); 

     } 

     else { 

      echo "Image not Uploaded!"; 

     } 

} 

?> 

そのままコピーして貼り付けてください。それが働いたかどうか

+0

大丈夫それを試してみます – Adi

+0

それは働いた!ありがとうございましたら – Adi

+0

です。私の答えを受け入れてください。ありがとう – Adi

1

ファイルの内容を取得するだけです。あなたはまた、move_uploaded_file新しい場所ここ

+0

私はまだそれを解決しようとしています。コードが正常に機能していれば更新します – Adi

+0

それは動作しません – Adi

+0

あなたのパスを確認してください!! 'echo $ target_file'の値は?あなたのパスが正しいかどうかチェックしてください! – Saty

0
<?php 

include '../session.php'; 
require_once 'config.php'; 


if (isset($_POST['submit'])) { 

    $img_dir = "updated_photo/"; 
    $target_file = $img_dir . basename($_FILES["image"]["name"]); 
    $imageName = $_FILES["image"]["name"]; 
    $imageData = file_get_contents($_FILES["image"]["tmp_name"]); 
    $imageType = $_FILES["image"]["type"]; 

     if (substr($imageType, 0,5) == "image") { 
      $query = "UPDATE `crew_info` SET `image_name` = ? WHERE `id` = ?"; 
      $stmt = mysqli_prepare($conn, $query); 
      mysqli_stmt_bind_param($stmt, 'si', $imageName, $_POST['id']); 
      mysqli_stmt_execute($stmt); 
      $id = $_POST['id']; 
      //remove 
    if (file_exists($target_file)) 
    { 
     $result = unlink($target_file); 
     if (!$result) 
     { 
      //error, display error, 
      return false; 
     } 
    } 
      //upload 
      $result = move_uploaded_file($_FILES['image']['tmp_name'], $img_dir); 

       if(!$result) 
        { 
        //error upload 
        } 

      header("Location: ../admin/view_all_info.php?id=$id"); 

     } 

     else { 

      echo "Image not Uploaded!"; 

     } 

} 

?> 

はよく...あなたが驚いているなぜフォルダにこのイメージをコピーしないでください

関連する問題