0

画像の名前の取得に問題があります。
次のコードを使用して、アップロードフォルダーの下の画像を更新しました。
で画像パスを更新しています $image= time()."_".strtolower(str_replace($tokan, "" ,$file));

time 関数を使用して、イメージ名の前にタイム スタンプを追加します。
しかし、問題はtime_pathの更新だけです。その中でファイル名を取得できませんでした。

たとえば
、sunset.jpg のようなファイル タイプを使用して画像を閲覧している場合、
sunset.jpg ではなく「time_」しか取得できません...

<?php
    $host="localhost"; 
    $username="root"; 
    $password=""; 
    $db="training_swapnil"; 
    $tbl="gallary"; 
    $tb="album";
    $img_id=$_GET['id'];
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db")or die("cannot select DB");
    $q="SELECT * FROM $tbl WHERE eid='$img_id'";
    $r=mysql_query($q);
    $rw= mysql_fetch_assoc($r);
    echo $img=stripslashes($rw['image']);?>                

  <form name="update_img">
    <table border="0"><tr>
     <td><label>Uploaded Image:</label></td>
      <td><?php echo "<img src=\"uploads/$img\" width=\"150\" height=\"150\" />";?></td></tr>
       <tr><td><label>Upload New Image:</label></td><td>    <input type="file" name="file" id="file"/></td></tr>
       <tr><td><input type="submit" name="submit" value="upload"></td></tr>

    <?php     
         echo"here in post";
         $file=$_POST['file'];
        //$str=$HTTP_POST_FILES['file']['name'];
          echo "str file =$str";
         $tokan = array(" ", "'","`","’");
        //$image= time().".$file.";         
        $image= time()."_".strtolower(str_replace($tokan, "" ,$file));
        $path= "uploads/".$image;
        echo "path using file=$image";
        $sql="UPDATE gallary  set image='$image', path='$path' WHERE eid='$img_id'"; 
        echo $sql;
        $res=mysql_query($sql);
        $res=mysql_query($s);
            if($res>0)
        {
            if($file !=none)
            {                                      if(copy($HTTP_POST_FILES['file']['tmp_name'], $path))              {                                               //header("location:viewalbum.php");
        }
        else
        {
            echo "Error";
        }
    }
 }
?>
</table></form>
4

3 に答える 3

1

フォームタグをこれに置き換えます。

<form name="update_img" action="action.php" method="post" enctype="multipart/form-data">

フォームに enctype="multipart/form-data"属性がありません。

于 2012-09-25T12:28:37.250 に答える
0

$file=$_POST['file']で置き換えます$file=$_FILES['file']['name']

詳細はこちら: http://php.net/manual/en/features.file-upload.post-method.php

于 2012-09-25T12:28:54.160 に答える
0

あなたのコードは、どこにでも公開する準備ができていません。セキュリティ上の大きな問題があります。たとえば、$img_id はサニタイズされていません。

とにかく、次のように、フォームをマルチパートデータに設定して、実際にファイルのアップロードを受け入れるようにフォームを設定することから始めます。

<form enctype="multipart/form-data" ...
于 2012-09-25T12:28:55.457 に答える