更改图片上传的名称

时间:2014-04-25 14:22:11

标签: php image upload

我有一个文件来修改我的个人资料,但我需要在上传过程中更改图像的名称。 我需要这个,当我上传时,文件夹中已经没有替换图像。

我的档案代码是:

<?php
include 'verificar.php';
require_once 'config.php';

$id = $_GET["id"];
$nome    = $_POST["nome_perfil"];
$email   = $_POST["email_perfil"];

// Configuração da Imagem
$imagem  = $_FILES["imagem_perfil"];
$destino = "img/perfil/".$imagem['name'];

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

    if(empty($nome) || empty($email))
    {
        header ("Location: index.php?page=erro");
    }
    elseif(empty($_FILES['imagem_perfil']['name'])) 
    {
        mysql_query("UPDATE utilizadores SET Nome='$nome', Email='$email' WHERE ID='$id'");
        header ("Location: perfil_completo.php");
    }

    else
    {

        mysql_query("UPDATE utilizadores SET Nome='$nome', Email='$email', imgPerfil='".$imagem['name']."' WHERE ID='$id'");

        if($imagem['type'] == "image/jpeg"){
            move_uploaded_file($imagem['tmp_name'] , $destino);
        }else if($imagem['type'] == "image/png"){
            move_uploaded_file($imagem['tmp_name'] , $destino);
        }else if($imagem['type'] == "image/gif"){
            move_uploaded_file($imagem['tmp_name'] , $destino); 
        }
        header ("Location: perfil_completo.php");
    }
}
?>

现在解决方案:

<?php
include 'verificar.php';
require_once 'config.php';

$id = $_GET["id"];
$nome    = $_POST["nome_perfil"];
$email   = $_POST["email_perfil"];

 // Configuração da Imagem
 $imagem  = $_FILES["imagem_perfil"];
 $array = explode(".",$imagem['name']);
 $destino = "img/perfil/".$id.".".end($array);

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

 if(empty($nome) || empty($email))

     {
     header ("Location: index.php?page=erro");
     }

 elseif(empty($_FILES['imagem_perfil']['name'])) 
 {
     mysql_query("UPDATE utilizadores SET Nome='$nome', Email='$email' WHERE ID='$id'");
     header ("Location: perfil_completo.php");
 }

     else
     {

 mysql_query("UPDATE utilizadores SET Nome='$nome', Email='$email', imgPerfil='".$id.".".end($array)."' WHERE ID='$id'");

 if($imagem['type'] == "image/jpeg"){
    move_uploaded_file($imagem['tmp_name'] , $destino);
 }else if($imagem['type'] == "image/png"){
    move_uploaded_file($imagem['tmp_name'] , $destino);
 }else if($imagem['type'] == "image/gif"){
    move_uploaded_file($imagem['tmp_name'] , $destino); 
 }
header ("Location: perfil_completo.php");
     }
}
?>

1 个答案:

答案 0 :(得分:1)

你可以改变这个:

$destino = "img/perfil/".$imagem['name'];

到此:

$result = mysql_query("Select Nome from utilizadores WHERE ID='$id'");
$result = mysql_fetch_assoc($result);
$yourName = $result['Nome'];

$array = explode(".",$imagem['name']);
$destino = "img/perfil/".$yourName.".".end($array);

explode()是为了获取图像sufix。


您可以将名称设置为$yourName变量