图像无法以奇怪的名称显示

时间:2013-12-12 22:07:53

标签: php html image file-upload

我有一个代码,让我的用户上传图像,它工作正常,直到我发现图像文件名是这样的“Suzuki_Swift_1.2_Comfort_(FZ_NZ)_ _Frontansicht,_26._März_2011,_Düsseldorf。 jpg“

当我上传此图片时,我的行李图标已经破损。 当我上传名为“Suzuki_Swift_1.2_Comfort”的相同图像时,它可以正常工作。

这是我的html和php代码,用于将图像上传到我的数据库中的路径中!

为什么会发生这种情况,我该如何解决呢?

HTML:

<input type="file" name="foto"   onchange="readURL(this);" accept="image/gif, image/jpeg" />

PHP:

 <?php


 if (isset($_POST['submit']) && empty($errors) === true )
{
    $name=basename($_FILES['foto']['name']);
    $t_name=$_FILES['foto']['tmp_name'];
    $dir='upload';
  if ($_FILES['foto']['size'] >= 2097152) {
  $errors[] = '- Big file';
  } else {  
    if(move_uploaded_file($t_name,$dir."/".$name))
        {
    $path=$dir."/".$name;


        }
}
  }
?>

Img标签:

<?php    $photo=mysql_query("SELECT * FROM adver ORDER BY car_id DESC LIMIT");
while($get_photo=mysql_fetch_array($photo)){ ?>
 <a href="<?php echo 'car-details.php?merk='.$get_photo['merk'] .'&car_id='  .$get_photo['car_id'] .'&titel=' .$get_photo['titel'] ;?>">        


<img src="<?php  echo   $get_photo['path']; ?>" style="border:1px solid #021a40;" alt=" <?  php  echo $get_photo['merk'] ;?>" />

1 个答案:

答案 0 :(得分:0)

只需将图像重命名为随机字符串,即可阻止非法字符通过并安全防范两个用户上传同名的不同图像。