Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vidal Corp

[Resolvido] Página faz upload de imagem para uma pasta

Recommended Posts

Olá pessoal!

 

Seguinte...estou desenvolvendo um site de tutoriais e video-aulas, eu tenho uma página onde cadastro os tutorial (todo o conteudo do tutorial) claro :blink::P .

 

No meu servidor web local (no meu micro "Apache+PHP+MySQL") funciona perfeitamente, mas quando fiz o upload para meu host não está salvando a imagem na pasta de destino, acredito ser problema de permissão para salvar a imagem upada na pasta de destino, já coloquei até permissão total (777) na pasta de destino e na página que faz o up da imagem, mas não funcionou ainda <_< , o que pode ser?

 

 

A parte do codigo responsavel pelo upload é esse aqui:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
	$strKey = // disculpa erro meu.. mas aqui era uma conbinacao pra gera um nome unico.. de qualquer forma nao interfere no upload
  $insertSQL = sprintf("INSERT INTO blog_tutoriais (strTutTitle, strTutText, strCatName, strUsrName, strTutStatus, strTutHome, strTutImage) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['strTutTitle'], "text"),
                       GetSQLValueString($_POST['strTutText'], "text"),
                       GetSQLValueString($_POST['strCatName'], "text"),
                       GetSQLValueString($_POST['strUsrName'], "text"),
                       GetSQLValueString($_POST['strTutStatus'], "text"),
                       GetSQLValueString($_POST['strTutHome'], "text"),
                       GetSQLValueString($strKey . '.jpg', "text"));

  mysql_select_db($database_connDB, $connDB);
  $Result1 = mysql_query($insertSQL, $connDB) or die(mysql_error());

	$strImageTmp = $_FILES['strTutImage']['tmp_name'];
	$objImg = new W3_Image;
	$objImg->create( $strImageTmp, 160, 130, '../fotos-tutorial/' . $strKey . '.jpg');
  $insertGoTo = "tutoriais.php";

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual erro q retorna ?

 

posta esta classe W3_Image ..

 

*obs:mal por tira o valor da variavel $strKey . .pensei q fosse uma conbinação de senha .. dpois fui le e ve q era o nome da img :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já está na classe W3_Image, veja.

 

<?php include('../Includes/W3_Image.class.php'); ?>

 

 

e o $strKey é o nome da imagem upada só que criptografada em md5.

 

Acredito que isso não é o problema pois não aprece erro algum, simplesmente não salva a imagem, o tutorial é salvo no banco de dados, mas a imagem não é salva na pasta de destino nesse caso é :

 

$objImg->create( $strImageTmp, 160, 130, '../fotos-tutorial/' . $strKey . '.jpg');

 

 

onde já estou redimencionando a imagem e mandando para a pasta de destino, como disse anteriormente no meu micro (local) funciona perfeitamente, mas no meu host não funciona e simplesmente não acotece nada, não salva a imagem, NÃO aparece nenhum erro, somente NÃO SALVA a imagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu li passando o olho...

 

Mas já até imagino o problema...

 

Qual é a sua hospedagem?? Você modificou as permissões pelo programa de FTP ou pelo painel de controle do seu provedor de hospedagem?

 

Muitos provedores, não permitem q você faça modificações de permissões por FTP... você precisa fazer pelo painel de controle deles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hospedagem a pasta já está com permissão total também.

 

Habilitei a opção para exibir os erros, mas ainda não apresenta nenhuma mensagem.

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

ql o nome do arquivo q você esta dando upload?

 

O certo era você colocar a class W3 aqui... pra gnt analisar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade eu não estou nomeando a imagem, quando faço o upload o nome é gerado pelo md5 que está no código acima.

 

Ex: Se a imagem original chama Photo.jpg depois de upada o md5 cria o seguinte nome 04dbb3e7112164bbe13afe2c7f14.jpg

 

 

Lembrando que só pra tirar qualquer dúvida, o nome da imagem está sendo salva no banco de dados, normalmente, mas a imagem em si, não está indo para a pasta de destino, como deveria (isso só acontece na web, já na hospedagem, no meu pc (servidor web local) funciona perfeitamente)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, faça o seguinte:

 

1. Faça backup do seu arquivo original (o que faz a gravação e funciona no seu localhost).

2. Remova todo o conteúdo do arquivo e coloque apenas:

 

<?php
$pasta_de_destino = '../fotos-tutorial/';

if ( is_dir( $pasta_de_destino ) ){
if ( is_writable( $pasta_de_destino ) ) echo 'Temos permissão de gravação';
else echo 'Não temos permissão de gravação';
} else echo 'A pasta informada não existe';

 

Veja a saída.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também testei com o código abaixo e não obtive nenhuma resposta, simplesmente a página fica em branco e não aparece nada diferente, nem mesmo na barra de endereços, como algumas vezes costuma aparecer as mensagens do php.

 

if ( is_dir( $pasta_de_destino ) ){
if ( is_writable( $pasta_de_destino ) ) echo 'Temos permissão de gravação';
else echo 'Não temos permissão de gravação';
} else echo 'A pasta informada não existe';

 

Não obtive resposta alguma com esse código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não obtive resposta alguma com esse código.

 

Como assim, absolutamente nada ?!!?

 

Você executou o código diretamente, por exemplo:

 

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara simplesmente nada, a página fica em branco, nem vai para a página com o relatório de todos os tutoriais cadastrados.

 

Simplesmente não acontece nada.

 

Já não faço idéia do que fazer, ja tentei de quase tudo...rsrs..mas em vão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, mais um teste:

 

<?php
phpinfo();

 

Crie um arquivo, coloque o conteúdo acima e execute-o, não precisa colocar a saída toda aqui, basta dizer se houve uma saída e qual a versão do PHP que aparece para você.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, deixa eu te dar uma dica, quando tiver testando isso, tente testar com o firefox, porque as vezes o IE não mostra o erro do PHP não sei pq...

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Criei um arquivo com o código acima...e tive resposta sim.

 

PHP Version 5.2.11

 

Eu testo sempre com os browsers: Firefox, Konkeror, Iceweasel, Safari, IE e Chrome, todas as páginas que crio.

 

Tento ser o mais detalhista possivel e tento simular diversas situações e clientes, por isso testo em todos esses.

 

 

Já recriei a página de cadastro que faz o upload da imagem, mas ainda persiste a mesma situação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, vou insistir novamente com esse código:

 

<?php
$pasta_de_destino = '../fotos-tutorial/';

printf( 'Estamos em %s e vamos verificar a existência de: %s<br />' , getcwd() , $pasta_de_destino );

if ( is_dir( $pasta_de_destino ) ){
if ( is_writable( $pasta_de_destino ) ) echo 'A pasta existe e temos permissão de gravação<br />';
else echo 'A pasta existe, mas não temos permissão de gravação<br />';
} else echo 'A pasta informada não existe<br />';

 

Crie um novo arquivo com o conteúdo acima e execute, coloque aqui a saída.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Criei o arquivo com o código acima e a resposta que tive foi...

 

Estamos em /home/vidal/public_html/vidal/adm e vamos verificar a existência de: ../fotos-tutorial/

A pasta existe e temos permissão de gravação

 

Mas ainda assim as imagens não estão sendo salvas na pasta de destino. Já não sei o que fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... eu sei que tu é bem detalhista... mas raramente escapa alguma coisa ali ou aqui, sabe como é né?!

 

Por isso, me responsa alguns itens:

 

  • Você colocou o enctype="multipart/form-data" na tag form?
  • O atributo name do input file é strTutImage?
  • O arquivo que contém a classe W3_Image está sendo incluído?
  • Você já tentou mudar o nome da pasta para fotostutorial e testou (mudando as configs no php tbm)?
  • Você já tentou fazer um form simples e um upload simples nesta mesma pasta?
Agora faça o seguinte:

 

crie os seguintes arquivos e coloque no mesmo diretório que a pasta "fotos-tutorial":

 

formteste.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Meu upload querido</title>
</head>

<body>
<form action="uploadteste.php" method="post" enctype="multipart/form-data">
 <fieldset>
 <label for="arquivo">Arquivo: </label><input type="file" name="arquivo" id="arquivo" />
 <input type="submit" value="Enviar" />
 </fieldset>
</form>
</body>
</html>

uploadteste.php

<?php
if(move_uploaded_file($_FILES['arquivo']['tmp_name'], "fotostutorial/".$_FILES['arquivo']['name'])){
 echo "foi uploadado =)";
} else {
 echo "não foi uploadado =/";
}
?>

E tenta uploadar um arquivo ae no formteste.php, e nos diga o q aconteceu.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas, fiz todos os procedimentos que você falou acima, criei os arquivos que você pediu e funcionou, fez o upload normalmente da imagem, já troquei o nome da pasta e funcionou também com o seu script.

 

Mas testando com minha página, mesmo trocando o nome da pasta e mudando no php ainda não funcionou, criei a pasta fotostutorial no mesmo local da página de cadastro pra ver se funcionava, também não funcionou.

 

 

Todos os dados e nomes dos campos e variáveis do php estão corretos, como disse, a mesma estrutura de banco de dados e de diretórios e de banco de dados que tenho no meu localhost, está na minhas hospedagem, e no meu localhost funciona, mas na web não.

 

O cadastro em si do conteúdo da página está funcionando, somente a imagem que deve ser upada não está. Somente isso está complicando minha vida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se o código do Lucas funcionou então definitivamente é algum problema no seu código, então faça o seguinte:

 

Logo no início do seu código coloque o seguinte:

 

error_reporting( E_ALL | E_STRICT );

 

Coloque aqui todos os E_WARNING e E_NOTICE que aparecerem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.