Ir para conteúdo
Fórum Script Brasil
  • 0

Upload imagem PHP - Permission denied


Vithor

Pergunta

Bom, antes de tudo:

SIM, EU JÁ MUDEI TODAS AS PERMISSÕES DE TODOS OS DIRETÓRIOS E ARQUIVOS NO FTP PARA 777 (FULL READ/WRITE)!

Ok, agora vamos ao que interessa:

Eu tenho um gerenciador que a hora que eu vou fazer o upload de imagens ele dá o erro:

PHP Warning: copy(uploads/noticia/22.jpg) [<a href='function.copy'>function.copy</a>]: failed to open stream: Permission denied in <NOME_ARQUIVO> on line 105

A linha 105 é a seguinte:

copy($imagemTmp, $pasta.$pre."_".$id.".".$ext);

Essas variáveis, eu já dei ECHO em todas, e estão todas com valores corretos...

Alguém tem alguma idéia?

Só mais um detalhe: eu já dei um echo phpinfo(); pra ver se as variáveis de upload estão habilitadas, com tamanho máximo que permita o envio das fotos (a foto tem menos de 1mb, massss...).

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Sim, dei ECHO nisso:

echo $pasta.$pre."_".$id.".".$ext; // retorna: uploads/noticia/noticia_28.jpg

Essa pasta existe, tá tudo certo, mas dá o erro ainda :S

E esse erro dá em TODAS as áreas, tipo, o que eu tenho aí em cima é a parte de cadastro de notícias. Mas tem cadastro de mais outras coisas que permitem o envio de imagens e também dá erro...

Link para o comentário
Compartilhar em outros sites

  • 0
Sim, dei ECHO nisso:

echo $pasta.$pre."_".$id.".".$ext; // retorna: uploads/noticia/noticia_28.jpg

Essa pasta existe, tá tudo certo, mas dá o erro ainda :S

E esse erro dá em TODAS as áreas, tipo, o que eu tenho aí em cima é a parte de cadastro de notícias. Mas tem cadastro de mais outras coisas que permitem o envio de imagens e também dá erro...

Olá tudo bem,

Primeiro gostaria de saber qual a finalidade dessa linha?

sugestões

utilize o move_uploaded_file() ;

para lança-lo na pasta caso seja isso que esteja querendo ne.

e utilize o file_exists();

para verificar se existe o arquivo

post os resultados até mais

Link para o comentário
Compartilhar em outros sites

  • 0

Opa cara!

Então, esse é um sistema que já existia antes de eu trabalhar aqui, e eu nunca "investiguei" ele completamente e a fundo...

Então tipo assim, essa linha de ECHO foi só pra testes meus, pra postar aqui o que mostrava... Basicamente, essa concatenação toda aí, é pra obter o caminho da nova pasta (mais áreas tem upload, e daí eu só mudo a variável, mas essa parte do código é igual pra todas...).

Eu tentei o move_uploaded_file() e deu dois erros daí:

PHP Warning: move_uploaded_file(<CAMINHO>) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: Permission denied in <ARQUIVO_DE_UPLOAD> on line 106

PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move 'C:\WINDOWS\Temp\php2B57.tmp' to '<CAMINHO>' in <ARQUIVO_DE_UPLOAD> on line 106

O que eu achei estranho foi ele ter mostrado o caminho temporário de onde a imagem foi colocada (C:\Windows\...)... será que tem algum problema com o servidor? Acho que não, né? Alguma sugestão?

Só mais algumas coisas:

if(isset($_FILES["foto"]["tmp_name"]))
{
    $imagemTmp = $_FILES["foto"]["tmp_name"];
    $ext = getExt($imagemTmp);
    $_POST['_ext'] = $ext;
}

//depois de algumas linhas insignificantes pra esse erro...:

if(isset($_FILES["foto"]["tmp_name"]))
{
    $id    = mysql_insert_id();
    move_uploaded_file($imagemTmp, $pasta.$pre."_".$id.".".$ext);
    thumbMaker($pasta.$pre."_".$id.".".$ext, 1000, 0, $pasta);    
    thumbMaker($pasta.$pre."_".$id.".".$ext, 400, 1, $pasta);    
    thumbMaker($pasta.$pre."_".$id.".".$ext, 65 , 2, $pasta);    
    @unlink($pasta.$pre."_".$id.".".$ext);
}

EDIÇÃO:

Galera, como vocês viram o servidor é Windows. estou começando a achar que é esse o problema. Não sei porque, mas parece que o Windows tá tendo problemas com o PHP, em alguma forma. Vou entrar em contato com a Locaweb enquanto não há novas respostas...

Editado por Vithor
Link para o comentário
Compartilhar em outros sites

  • 0

Sim o problema é com seu servidor ... Widows não existe permições de CHMOD ... você deve dar as permições diretamento no painel de controle do IIS

Em geral quem tem que fazer isso é o admistratidor do servidor ... é um saco ter que ficar pedindo a admin de servidor fazer isso em geral eles nem sabem o que fazer.

Mas como disse que está usando a Locaweb fica mais fácil ... basta entrar no Painel de Controle do mesmo e ir no 'gerenciador de pastas', ai você navega até a pasta onde serão feito os upload e dá permição de execução que resolve :P

Editado por SK15
Link para o comentário
Compartilhar em outros sites

  • 0

Opa pessoal!

Eu estava certo... o problema era mesmo com o Windows. A anta aqui tava setando as permissões de pasta direto no Cliente FTP. Adivinha, o cliente FTP usa CHMOD, comando que não é reconhecido pelo Windows, obviamente. Ao entrar em contato com a Locaweb eles me instruíram a realizar esse procedimento (de setar permissões) direto pelo Painel de Controle deles, e aí funcionou tudo certinho.

Espero que se alguém no futuro tenha esse problema, já tem alguma noção de como resolver...

Abração pessoal! Valeu aí por tudo ;D

Edição:

SK15, não tinha visto a sua resposta antes de entrar em contato com a Locaweb, mas vi agora! Era isso mesmo amigo!

Editado por Vithor
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...