2017-05-30 2 views
0

こんにちは私はファイルをアップロードし、そのパスをデータベースに保存しています。今、私はそれがデータベースに保存されている対応するIDへのパスを変更したいと思います。つまり、画像をアップロードしました。そのIDはデータベース内の '4'であり、ファイルパスも4でなければなりません。 idが5の場合はファイルパスの列にも5がなければなりません。私はしばらく検索しましたが、私は適切な答えを見つけることができません。親切に私をここで助けてください。ここ はINSERT データベース内のIDでファイルパスを変更する必要があります

  • は、ファイルの拡張子を取得した後、自分のコード

    ディレクトリ-image.php

    <!doctype html> 
        <html> 
        <head> 
        <meta charset="utf-8"> 
        <title>image in directory</title> 
        </head> 
    
        <body> 
        <form method="post" action="directory-imagedatabase.php" enctype="multipart/form-data"> 
    
        <label>Choose File to Upload:</label><br /> 
    
        <input type="hidden" name="id" /> 
    
        <input type="file" name="uploadimage" /><br /> 
    
        <input type="submit" value="upload" id="upload" /> 
    
        </form> 
        </body> 
        </html> 
    
    directory-imagedatabase.php 
    
        <?php 
        $target_Folder = 'images/'; 
    
        $uid = $_POST['id']; 
    
    
        $target_Path = $target_Folder.basename($_FILES['uploadimage']['name']); 
    
        $savepath = $target_Path.basename($_FILES['uploadimage']['name']); 
    
         $file_name = $_FILES['uploadimage']['name']; 
    
         if(file_exists('officework/php-startup/images/'.$file_name)) 
        { 
         echo "That File Already Exisit"; 
         } 
         else 
         { 
    
          // Database 
         $con=mysqli_connect("localhost","root","sal123","test"); //Change it if required 
    
        //Check Connection 
          if(mysqli_connect_errno()) 
          { 
           echo "Failed to connect to database" .  mysqli_connect_errno(); 
          } 
        $sql = "INSERT INTO directoryimage (id,image, image_name) 
        VALUES ('','$target_Folder$file_name','$file_name') ";   
          if (!mysqli_query($con,$sql)) 
          { 
           die('Error: ' . mysqli_error($con)); 
          } 
          echo "1 record added successfully in the database"; 
          echo '<br />'; 
          mysqli_close($con); 
    
          // Move the file into UPLOAD folder 
    
          move_uploaded_file($_FILES['uploadimage']['tmp_name'],  $target_Path); 
    
          echo "File Uploaded <br />"; 
          echo 'File Successfully Uploaded to:&nbsp;' . $target_Path; 
          echo '<br />'; 
          echo 'File Name:&nbsp;' . $_FILES['uploadimage']['name']; 
          echo'<br />'; 
          echo 'File Type:&nbsp;' . $_FILES['uploadimage']['type']; 
          echo'<br />'; 
          echo 'File Size:&nbsp;' . $_FILES['uploadimage']['size']; 
    
         } 
         } 
         ?> 
    
  • +0

    名前フィールドが同じであるようにファイルの名前を変更しますか? – e4c5

    +0

    あなたは最初に 'INSERT'文でIDを作成してから、' last_insert_id'機能を使ってIDを取得する必要があるので、2段階アプローチが必要です。その後、そのIDを使ってファイルを保存し、作成したエントリを 'UPDATE'することができます。 – arkascha

    +0

    いいえ今、私はidフィールド@ e4c5でデータベースに保存されているファイルパスを変更したい –

    答えて

    0
    1. は、レコードの挿入ID $id = mysqli_insert_id($con)をゲットです:$ext = preg_replace("/\.(gif|jpg|etc)$/", ".$1", $file_name);
    2. rename()rename("$target_Folder$file_name", $id . $ext);
    3. とのファイルの名前を変更します
    4. のようなものでレコードを更新してください0
    +0

    @leonardochallisサー・サークルあなたは助けてくれますが、ここでは指定されたファイル(code:2)を見つけることができませんが、ファイルパスはそのidで置き換えられていません(名前:images/12895293_1099151520146863_391821049_n.jpg、41) –

    +0

    私の悪い、小さなタイプ(カンマがない)が修正されました。しかし、コードで何が起こっているのかを理解することは重要です。これは、あなたが望むものを達成するための提案です。 – LeonardChallis

    +0

    エラーを削除しました。今はエラーはありませんが、ファイルパスの列がid –

    関連する問題