Ir para conteúdo

POWERED BY:

Arquivado

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

Vinny Oliveira

Upload com php

Recommended Posts

Galera eu estou aprendendo php . . . Eu fiz uma pagina de upload de arquivos com o php e quando eu jogo no meu servidor (que é o uolhost) eu tento fazer upload de algum arquivo e ele da esse erro de permissao:

 

PHP Warning: fopen(texto.txt . . . . . .. .. .failed to open stream: Permission denied

 

 

eu entrei no filezilla e mudei o chmod da pasta para 777 e da o mesmo erro

 

Me disseram que eu deveria dar chmod no proprio arquivo php mas eu nao aprendi isso ainda e eu queria testar o sistema em meu servidor.

 

Alguem pode me ajudar?

 

 

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>


<title> FOPEN para leitura e gravação de arquivos (2937)</title>
</head>

<body style="background-color:#ffff99;padding-left:50px;">


<p style="text-align:center;color:red;font-weight:bold;font-size:20pt;">Upload de Arquivos</p>


<form name="upload" method="post" action="" enctype="multipart/form-data">



<b>*** Tamanho maximo: 30mb</b>




<br>
<br>


<label style="color:black; font-weight:bold; font-size:16px;">Escolha o arquivo:</label><input type="file" name="ups" value="" style="margin-left:20px;border:1px solid blue;" />
<br>
<br>

<input type="submit" value="Enviar Arquivo" style="background:#666666;color:white;border:1px solid black; margin-left:30px;" />





<br><br><br><br><br>





</form>




<?php

$nome=$_FILES['ups']['name'];

$tipo=$_FILES['ups']['type'];

$tamanho=$_FILES['ups']['size'];




function dadosm(){

$nome=$_FILES['ups']['name'];

$tipo=$_FILES['ups']['type'];

$tamanho=$_FILES['ups']['size'];

global $nome;
global $tipo;
global $tamanho;

	move_uploaded_file($_FILES['ups']['tmp_name'],$nome);
echo "<font color='blue'><b>Upload feito com sucesso !</b></font><br><br><br>";

echo "<font color='blue'>Arquivo:</font> $nome <br>";

echo "<font color='blue'>Tipo:</font> $tipo <br>";

echo "<font color='blue'>Tamanho:</font> $tamanho <br><br><br><br>";


}


if($nome==""){
echo "Primeiro escolha um arquivo";
}else{
	if($tamanho>31457280){
		echo "<font color='red'><b>Arquivo Muito grande !</b></font>";
		exit;
	}else{
		dadosm();

	}

}





</body>


</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você nao botou o diretorio teste assim

>
<br>


<label style="color:black; font-weight:bold; font-size:16px;">Escolha o arquivo:</label><input type="file" name="ups" value="" style="margin-left:20px;border:1px solid blue;" />
<br>
<br>

<input type="submit" value="Enviar Arquivo" style="background:#666666;color:white;border:1px solid black; margin-left:30px;" />

<br><br><br><br><br>

</form>

<?

$diretorio = "images/";
$tamanho_maximo = "31457280";
$nome_arquivo = $_FILES['ups']['name'];
$temporario_arquivo = $_FILES['ups']['tmp_name'];
$tipo_arquivo = $_FILES['ups']['type'];
$tamanho_arquivo = $_FILES['ups']['size'];

if($tamanho_arquivo > $tamanho_maximo)
{echo "Imagem muito Grande"; }


else {
    $gerarnome = substr(md5(uniqid(time())), 0, 10);
	$nome_envia="$gerarnome.$nome_arquivo";
move_uploaded_file($temporario_arquivo, $diretorio.$nome_envia);

       echo "<font color='blue'><b>Upload feito com sucesso !</b></font><br><br><br>";

       echo "<font color='blue'>Arquivo:</font> $nome <br>";

       echo "<font color='blue'>Tipo:</font> $tipo <br>";

       echo "<font color='blue'>Tamanho:</font> $tamanho <br><br><br><br>";


}


?>


Compartilhar este post


Link para o post
Compartilhar em outros sites

utilize esse código para fazer o upload e veja se funciona:

 

if (!empty($_FILES['fotodep']['name'])){

// Prepara a variável do arquivo
$arquivo = isset($_FILES["fotodep"]) ? $_FILES["fotodep"] : FALSE;

// Pega extensão do arquivo
preg_match("/\.(gif|png|PNG|JPEG|jpg|jpeg|JPG|BMP){1}$/i", $arquivo["name"], $ext); // extenssão de arquivos permitidos

// Gera um nome único para a imagem
$imagem_nome = 'foto_'.uniqid(). "." . strtolower($ext[1]); 

// Caminho de onde a imagem ficará
$imagem_dir = "imgOpiniao/" . $imagem_nome; // pasta onde o arquivo será salvo

// Faz o upload da imagem
move_uploaded_file($arquivo["tmp_name"], $imagem_dir);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok galera vou tentar

 

pelo menos nesse forum as pessoas respondem no clube do hardware estava um deserto. . .

 

Espero que tenham paciencia comigo hehe

 

 

Atualização:

 

 

Galera os codigos deram esse erro:

 

PHP Warning: move_uploaded_file(images/295c842fbd.Untitled-1.png) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: Permission denied in E:\home\criativida20\Web\upload\index.php on line 64

PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move 'C:\Users\TEMPUO~1.293\AppData\Local\Temp\php262.tmp' to 'images/295c842fbd.Untitled-1.png' in E:\home\criativida20\Web\upload\index.php on line 64

 

se quiserem ver ta aqui o link do servidor: http://criatividade-web.com/upload/

 

 

isso foi no codigo do Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

vinny vamos fazer melhor entao para mostrar o sistemas online botei ele online e o link de download para você baixa.

espero que ajude você dessa vez abraç fica com deus. qualuqer duvida me adicione no msn marcoswebmaster@hotmail.com

 

 

DOWNLOAD:

VER O SISTEMA FUNCIONANDOi

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo... use esse código, mas não esqueça de criar a pasta imagens dentro do servidor na mesma pasta do script

 

if (!empty($_FILES['ups']['name'])){

// Prepara a variável do arquivo
$arquivo = isset($_FILES["ups"]) ? $_FILES["ups"] : FALSE;

// Pega extensão do arquivo
preg_match("/\.(gif|png|PNG|JPEG|jpg|jpeg|JPG|BMP){1}$/i", $arquivo["name"], $ext); // extenssão de arquivos permitidos

// Gera um nome único para a imagem
$imagem_nome = 'foto_'.uniqid(). "." . strtolower($ext[1]); 

// Caminho de onde a imagem ficará
$imagem_dir = "imagens/" . $imagem_nome; // pasta onde o arquivo será salvo

// Faz o upload da imagem
move_uploaded_file($arquivo["tmp_name"], $imagem_dir);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dárcio beleza?

 

Deu esse erro aqui:

 

PHP Warning: move_uploaded_file(imagens/foto_50993df7afa86.png) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: Permission denied in E:\home\criativida20\Web\upload\index.php on line 66

PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move 'C:\Users\TEMPUO~1.293\AppData\Local\Temp\php6E03.tmp' to 'imagens/foto_50993df7afa86.png' in E:\home\criativida20\Web\upload\index.php on line 66

 

eu criei a pasta imagens e tal

 

tem q dar algum chmod no arquivo php?

 

vinny vamos fazer melhor entao para mostrar o sistemas online botei ele online e o link de download para você baixa.espero que ajude você dessa vez abraç fica com deus. qualuqer duvida me adicione no msn marcoswebmaster@hotmail.comDOWNLOAD:VER O SISTEMA FUNCIONANDOi

 

esse sistema ele aparece a imagem quando eu escolho mas não envia, e não da nenhum tipo de erro ele só fica "Enviando Imagens..."

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem q dar algum chmod no arquivo php?

 

Pelo caminho usado na sua hospedagem (E:\home\criativida20\Web\) você está usando um servidor Windows, não existe CHMOD em Windows.

 

Sugiro que você solicite ao suporte do UOL HOST a migração para uma hospedagem Linux, pois o PHP é nativo do Linux e a performance e quantidade de recursos disponíveis será muito maior.

 

Se eu não me engano no UOL HOST não precisa alterar a permissão CHMOD, pois o PHP não roda como módulo do Apache (usuário nobody), e sim utiliza o mesmo usuário do FTP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo caminho usado na sua hospedagem (E:\home\criativida20\Web\) você está usando um servidor Windows, não existe CHMOD em Windows.

 

Sugiro que você solicite ao suporte do UOL HOST a migração para uma hospedagem Linux, pois o PHP é nativo do Linux e a performance e quantidade de recursos disponíveis será muito maior.

 

Se eu não me engano no UOL HOST não precisa alterar a permissão CHMOD, pois o PHP não roda como módulo do Apache (usuário nobody), e sim utiliza o mesmo usuário do FTP.

 

 

eu tenho um servidor linux e um windows, só q eu nao ultilizo no momento pois nao comecei o curso de linux ainda.

Mas o certo mesmo era ele rodar no windows tb, antes de abrir esse topico eu estou tentando a 3 dias ):

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não precisa fazer um curso de Linux para usar uma hospedagem compartilhada Linux, você só vai precisar subir os arquivos por FTP normalmente como já faz usando o servidor Windows. A menos que esteja falando de configurar um servidor dedicado, VPS ou Cloud.

 

No caso do Windows você também pode alterar a permissão de escrita do diretório, mas neste caso deve ser via painel de controle.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não precisa fazer um curso de Linux para usar uma hospedagem compartilhada Linux, você só vai precisar subir os arquivos por FTP normalmente como já faz usando o servidor Windows. A menos que esteja falando de configurar um servidor dedicado, VPS ou Cloud.

 

No caso do Windows você também pode alterar a permissão de escrita do diretório, mas neste caso deve ser via painel de controle.

 

tendeu, vou testar no serv do linux aqui, vou dar chmod na pasta com o filezilla, precisa dar no php tb?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você estiver usando uma hospedagem compartilhada do UOL HOST não precisa alterar a permissão CHMOD, pois como eu disse antes lá não usa o usuário "nobody" do Apache.

 

Porém, se precisar alterar a permissão é só na pasta onde vai ser salvo os arquivos, no arquivo PHP não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Puts to começando a ficar mais preocupado ainda. . Não funciona upload, postagem e nem leitura de arquivos (fgets)

 

ah eu testei um script simples tb e nao funcionou:

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>


<title> Iniciando UPLOAD de arquivos (2932)</title>
</head>

<body>




<form enctype="multipart/form-data" name="upload" method="post" action="" >


<b><h2>Digite seu poema:</h2></b><br>

<br><br>
Digite aqui: <br><textarea name="poema" value="" cols="40" rows="10" style="color:red;border:1px solid red;"> </textarea><br>


<input type="submit" value="Enviar poema" />


</form>


<br><br>

<?php

$poema=$_POST['poema'];



$grava=fopen('poema.txt','w');
fputs($grava,$poema);
fclose($grava);







?>

<br><br><br><br>



</body>


</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

vinny vamos no começo aqui 1° pra você que que programa use um servidor local recomendo app server ate hoje deu nenhum poblema não

 

 

bom vamos lá

 

index.php

<form name="form" method="post" action="" enctype="multipart/form-data">
<input type="file" name="foto" value=""  />
<input type="submit" value="Enviar Arquivo"/>
<?
$diretorio = "images/";
$tamanho_maximo = "31457280";   //30mb
$nome_arquivo = $_FILES['foto']['name'];
$temporario_arquivo = $_FILES['foto']['tmp_name'];
$tipo_arquivo = $_FILES['foto']['type'];
$tamanho_arquivo = $_FILES['foto']['size'];

if(($tipo_arquivo != 'image/jpeg')
AND ($tipo_arquivo != 'image/gif')
AND ($tipo_arquivo != 'image/png'))
{echo "Formato inválido"; }
elseif($tamanho_arquivo > $tamanho_maximo)
{echo "Imagem muito Grande"; }

elseif(file_exists("$diretorio/$nome_arquivo"))
{echo "Renomeie sua imagem antes de enviar"; }
else {
    $gerarnome = substr(md5(uniqid(time())), 0, 10);
	$nome_envia="$gerarnome.$nome_arquivo";
move_uploaded_file($temporario_arquivo, $diretorio.$nome_envia);

 echo "Upload feito com sucesso !";

}

?>

100%funcionando e testado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso um servidor local para estudo, ai eu tento passar para meu servidor web para eu colocar na pratica. No local eles funcionam 100% (pq n tem esse negocio de permissao) agora no web deu esse erro:

 

PHP Warning:  move_uploaded_file(images/88b5351b32.560353_318114871628853_56106225_n.jpg) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: Permission denied in E:\home\criativida20\Web\upload\index.php on line 67
PHP Warning:  move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move 'C:\Users\TEMPUO~1.293\AppData\Local\Temp\php65C0.tmp' to 'images/88b5351b32.560353_318114871628853_56106225_n.jpg' in E:\home\criativida20\Web\upload\index.php on line 67

 

Pior que como eu disse nao é so o sistema de upload

 

Ahhh

 

Eu testei no servidor linux e funcionou !! eu coloquei as permissoes chmod 777

 

So no windows q não funciona. O esquema é eu manda esse servidor pra catatumba

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso pode ser apenas uma questão de permissões na pasta.

 

No painel de controle da sua hospedagem, selecione a pasta que está o script e/ou a pasta onde esse script irá manipular e autorize para leitura e gravação.

 

Em algumas hospedagens, não adianta fazer isso pelo ftp, é necessário ir no painel de controle e efetuar isso por lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso pode ser apenas uma questão de permissões na pasta.No painel de controle da sua hospedagem, selecione a pasta que está o script e/ou a pasta onde esse script irá manipular e autorize para leitura e gravação.Em algumas hospedagens, não adianta fazer isso pelo ftp, é necessário ir no painel de controle e efetuar isso por lá.

 

 

Então chara, eu entrei la no painel do uolhost e alterei as permissoes nele mesmo e nada adiantou :/

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.