1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Tópico FECHADO]Problema em mudar o nome de um file por ftp [php]

Discussão em 'Web Development' iniciada por Stawl, 7 de Maio de 2009. (Respostas: 6; Visualizações: 2148)

  1. Boas, gostaria que me ajudassem aqui. O site que estou a fazer tem uma opção para fazer o upload de um foto vinda da maquina do utilizador, o problema é que eu gostava que a foto ficasse com o nome do ID do user de forma a que quando ele fizesse log in, a sua imagem fosse lida no topo do site(dentro de um tabela onde o php iria ler a imagem de acordo com o ID do username).

    Código:

    É redireccionado para:
    Que fique claro que o ficheiro fica hostado, apenas não concigo alterar-lhe o nome dentro do host. Penso que não deve ser esse o código para alterar o nome do ficheiro. Já tentei fazer "print $_FILES['file']['name'];" mas não apareçe nada.

    Cumprimentos,

    Stawl
     
    Última edição: 8 de Maio de 2009
  2. mad16v

    mad16v Power Member

    move_uploaded_file( $_FILES["file"]["tmp_name"] , "upload/" . $_SESSION['id'] . $_FILES['file']['type']);

    Só assim já transfere o ficheiro para o servidor com o novo nome.
     
  3. Novo problema, a linha de código ficou da seguinte forma:

    Infelizmente só me guarda a imagem como 2. sem acrescentar a extensao...
    Tentei por jpg depois do ponto e eleminar o $_FILES etc e confirmei que guardou a imagem como queria (ate apareceu o quadradinho da imagem no filezilla), puz tambem $_SESSION['id'] e guardou como 2.2 mas com o type nao aparece a extensao e guarda como 2.
     
    Última edição: 7 de Maio de 2009
  4. whee_man

    whee_man Power Member

    Podes obter a extensao de varias maneiras:

    PHP:
      $path_info pathinfo($file);
      
    $extensao $path_info['extension'];
    ou

    PHP:
    $extensao end(explode("."$file))
    Esta ultima não funciona para ficheiros tipo nome.tgz.gz, mas para o que precisas é suficiente
     
  5. Bem, já estou farto de andar as voltas com o código que me disses-te, mas ainda não descubri como o utilizar. Diz-me, esse $file é para meter a localização do file? É que não faz muito sentido porque estou a ir buscar a estensao do ficheiro onde? Pensei entao que talvez fosse ao local temporario onde ele fica ate ser gravado e puz o seguinte código:

     
  6. whee_man

    whee_man Power Member

    Minha culpa.
    Tens de ir buscar o nome original do ficheiro $_FILES["file"]["name"] e não o tmp_name. O teu codigo deverá ser:

    PHP:
    {
    $path_info pathinfo($_FILES["file"]["name"]);
    $extensao $path_info['extension'];
    move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" $_SESSION['id'] . "." $extensao);
    echo 
    "Ficheiro guardado com sucesso.";
    }
     
  7. Tópico fechado, problema resolvido por whee_man. Gracias :D
     

Partilhar esta Página