Scientist 2 Denunciar post Postado Outubro 9, 2011 Estou tentando usar o move_uploaded_file mais não funciona , já tentei comandos simples como este: move_uploaded_file("C:\teste.txt","C:\teste2.txt"); e não funciona .. alguma dica? Compartilhar este post Link para o post Compartilhar em outros sites
wdc_black_ 0 Denunciar post Postado Outubro 9, 2011 colocou o encyte = "multipart/form-data" no form ? Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Outubro 9, 2011 Cara, não é assim, essa função serve para mover arquivos ENVIADOS POR UPLOAD, mas desse jeito que está tentando fazer, o arquivo não foi enviado, ele já está lá. move_uploaded_file("C:\teste.txt","C:\teste2.txt"); Se é pra mover arquivos que já estão no servidor, use a função rename() Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Outubro 9, 2011 coloquei o multi/data no form sim Rick, o que quero fazer é que o usuário passe uma foto no formulario e eu pegue esta foto e coloque em outra pasta , no caso como eu estou trabalhando localmente apenas para teste, estou tentando usar o move_uploaded_file para pegar esta foto (que está na minha propria maquina) e colocar em uma pasta do site como essa: ../admin/fotos/ Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Outubro 9, 2011 Se é pra enviar o arquivo, você precisa de um campo <input type="file" name="file"/> , e no form colocar enctype="multipart/form-data". Ao enviar o form, você vai usar a variável superglobal $_FILES: $upFile = $_FILES['file']; //Esse índice 'file' é o atributo NAME do input do formulário $tmpName = $upFile['tmp_name']; $fileName = $upFile['name']; $error = (int) $upFile['error']; if($error == 0){ if(move_uploaded_file($tmpName, '../admin/fotos/'.$fileName)){ echo 'Arquivo enviado com sucesso!'; } else { echo 'Problemas ao mover o arquivo.'; } } else { echo 'Problemas ao enviar o arquivo.'; } Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Outubro 9, 2011 vou lhe mostrar tudo que estou fazendo .. passo a passo : 1 - Escolhe arquivo: <input name="foto" type="file" id="foto" size="60" /> 2 - Vai para a pagina cad_loja_persist.php, ela vai criar um objeto PojoLoja para posteriormente salvar no banco: $pojo->setFoto($_FILES['foto']['tmp_name']); 3 - Depois salva no banco o objeto, e chama o trataFoto para ele atualizar o caminho e colocar a foto no local apropriado: mysql_query($sql) or die("Não foi possível inserir esta loja"); SalvarFotoNoBD($loja->getFoto(), mysql_insert_id(), "LOJA", "FOTO_LOJA", "COD_LOJA", mysql_insert_id(), "loja"); 4 - Vou postar o codigo completo do meu trataFoto: <?php function SalvarFotoNoBD($foto, $nome_novaFoto, $tabela, $campo_foto, $campo_cod, $cod, $pasta){ if (ValidarImagem($foto)){ // Pega extensão da imagem $infoimg = getimagesize($foto); if ($infoimg[2] == 1) $ext = "gif"; else if ($infoimg[2] == 2) $ext = "jpg"; else if ($infoimg[2] == 3) $ext = "png"; else if ($infoimg[2] == 6) $ext = "bmp"; // Gera um nome único para a imagem $nome_imagem = $nome_novaFoto . "." . $ext; // Caminho de onde ficará a imagem $caminho_imagem = "/foto/".$pasta."/". $nome_imagem; // Faz o upload da imagem para seu respectivo caminho move_uploaded_file($foto,$caminho_imagem) or die("Não foi possível salvar a foto no servidor FTP"); $sql = "UPDATE $tabela SET $campo_foto = '$caminho_imagem' WHERE $campo_cod = $cod"; mysql_query($sql) or die ("Não foi possível inserir a foto no Banco de Dados"); } else return false; } function ValidarImagem($foto){ if ((!empty($foto)) && (ValidarTamanho($foto)) && (ValidarFormato($foto))) { return true; } else{ echo "Selecione uma imagem correta <br>"; return false; } } function ValidarTamanho($foto){ // Largura máxima em pixels $largura = 300; // Altura máxima em pixels $altura = 300; // Tamanho máximo do arquivo em bytes $tamanho = 2097152; // Pega as dimensões da imagem $dimensoes = getimagesize($foto); $size = filesize($foto); $error = 0; // Verifica se a largura da imagem é maior que a largura permitida if($dimensoes[0] > $largura) { $error = $error + 1; } // Verifica se a altura da imagem é maior que a altura permitida if($dimensoes[1] > $altura) { $error = $error + 1; } // Verifica se o tamanho da imagem é maior que o tamanho permitido if($size > $tamanho) { $error = $error + 1; } if ($error > 0) { echo "Tamanho da imagem inválido !! <br>"; return false; }else { return true; } } function ValidarFormato($foto){ $infoimg = getimagesize($foto); if (($infoimg[2] == 1) || ($infoimg[2] == 2) || ($infoimg[2] == 3) || ($infoimg[2] == 6)) { return true; }else { echo "Formato inválido !!<br>"; return false; } } ?> Sempre da o erro que eu configurei no die do move_uploaded_file ("Não foi possível salvar a foto no servidor FTP") Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Outubro 9, 2011 Note que existem dois nomes diferentes para o arquivo enviado: $tmpName = $upFile['tmp_name']; $fileName = $upFile['name']; $tmpName é o nome temporário, dado pelo servidor PHP e $fileName é o nome do arquivo enviado. Para usar o move_uploaded_file, o primeiro parâmetro precisa ser o nome temporário e o segundo parâmetro o destino final do arquivo /local/da/pasta/nome_do_arquivo.ext Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Outubro 9, 2011 sim , é isto que estou fazendo rick ! Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Outubro 10, 2011 Dá um var_dump em $foto Compartilhar este post Link para o post Compartilhar em outros sites