0

我在获取图像名称时遇到问题。
我使用以下代码更新上传文件夹下的图像。
我正在更新图像路径 $image= time()."_".strtolower(str_replace($tokan, "" ,$file));

时间函数用于在图像名称之前添加时间戳。
但问题只是时间_路径更新我没有得到文件名。

例如:
如果我使用诸如 sunset.jpg 之类的文件类型浏览图像,
我只会得到“time_”而不是 sunset.jpg...

<?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 回答