Jump to content
filip_e

Sistema de upload de arquivos

Recommended Posts

filip_e

Sistema de upload de arquivos

Este tutorial tem como meio, explicar como fazer upload de arquivos para o servidor, está simples...

Crie um arquivo chamado upload.htm com o seguinte:

<html>
<body>
<form action="upload.php" method="POST" enctype="multipart/form-data">
Arquivo: <input type="file" name="file"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Explicando, aqui é um simples formulário, em que, este object file, faz aparecer aquelas janelinhas de escolher os arquivos! no enctype pode especificar, sendo imagens jpg, gif, arquivos exe, como desejar!

Crie um arquivo chamado upload.php com o seguinte código:

<?php
$destino = "/destino"; //Pasta onde serão armazenados os uploads

$mandar = $destino."/".$file_name;
if(!move_uploaded_file($file, $mandar)) {
   echo "O arquivo não pode ser enviado!";
}
else {
   echo "O arquivo foi enviado!";
}
echo"Quer enviar mais arquivos? <a class=\"link\" href=\"upload.htm\">Clique aqui</a>"
?>

Explicando cada função e cada variável:

a variável $destino esta armazenando o destino para onde será enviado o arquivo

A variável $mandar está encarregada de colocar o destino e o nome do arquivo, então ficaria assim: /destino/filename.extensão

if(!move_uploaded_file($file, $mandar)) {

Esta parte ja mostra que se, acontecer de que move_uploaded_file($file, $mandar)

for igual a 0, que significa false, ela imprimirá a mensagem de erro, caso não, irá imprimir uma mensagem de OK!

Agora preguntam, como eu exibo o arquivo que o user me mandou?

É muito simples, é só colocar este código no final da página:

echo "O arquivo enviado foi este: $file";

Ps: É necessario dar CHMOD 777 na pasta de destino no servidor!

Share this post


Link to post
Share on other sites
deathseeker25

Ya o filip_e é o nosso homem dos tutoriais....

Faz tutoriais de todas as linguagens sobre todas as coisas...

Cumps

Share this post


Link to post
Share on other sites
satanuke

Tutorial porreiro, mas creio que faltam ai umas coisas na ultima linha, mais propriamente caracteres de escapatória a ultima linha deve ficar algo como

echo "Quer enviar mais arquivos? <a class=\"link\" href=\"upload.htm\">Clique aqui</a>"

Share this post


Link to post
Share on other sites
Kallean

Estive a ler e etnho duas perguntas :

1º Que devo acrescentar se, antes de se colocar algum arquivo através de um ipload, o membro se tiver de registar com nome, senha, etc, etc....

Sei que a resolução para esta questão é algo complicada, mas expliquem-me que eu faço...

2º Que devo fazer para construi­r uma ligação desse site a uma base de dados alojada no meu pc? (já uso o programa do satanuke por isso tanto o site como a db vão ficar armazenados aqui no meu pc....)

Fiquem bem B)

Share this post


Link to post
Share on other sites
satanuke

Ora bem, para isso deverias ter uma base de dados com os utilizadores registado, seja em ficheiros, numa BD MySQL, etc...Depois tens que validar o user no acto de login. Para mim isto já é uma coisa muito á frente porque nunca fiz nada do genero em PHP. Mas creio deve haver por aqui algum user que seja capaz de te ajudar mais nisto...

Share this post


Link to post
Share on other sites
styr

Desculpem a profunda ignorancia mas...

Ps: É necessario dar CHMOD 777 na pasta de destino no servidor!

o que é isto ? e como se faz ?

Share this post


Link to post
Share on other sites
vbmaster

Desculpem a profunda ignorancia mas...

Ps: É necessario dar CHMOD 777 na pasta de destino no servidor!

o que é isto ? e como se faz ?

Provavelmente o servidor é Unix Based para estarem a dizer isso, pois chmod é um comando que dá permissões aos ficheiros e directórios nos sistemas unix (mac, gnu/linux incluídos).

Share this post


Link to post
Share on other sites
joninho

Bom tutorial, estava mesmo a precisar de uma cena dessas XD Thnks...

Share this post


Link to post
Share on other sites
joninho

Desculpem a profunda ignorancia mas...

Ps: É necessario dar CHMOD 777 na pasta de destino no servidor!

o que é isto ? e como se faz ?

Provavelmente o servidor é Unix Based para estarem a dizer isso, pois chmod é um comando que dá permissões aos ficheiros e directórios nos sistemas unix (mac, gnu/linux incluídos).

e como é que se faz isso? já agora é assim, o meu site é www.jeg.addyour.net eu fix um upload.php assim:

<?php
$var = $_GET["action"];
switch ($var){
case "enviar":

$destino = "/Uploads"; //Pasta onde serão armazenados os uploads

$mandar = $destino."/".$file_name;
if(!move_uploaded_file($file, $mandar)) {
   echo "O arquivo nÃo pode ser enviado!";
}
else {
   echo "O arquivo foi enviado!";
   echo "O arquivo enviado foi este:". $file;
}
echo'Quer enviar mais arquivos? <a class="link" href="uploads.php">Clique aqui</a>';

	break;

default:
?>
 <form action="Uploads.php?action=enviar" method="POST" enctype="multipart/form-data">
Arquivo: <input type="file" name="file"><br>
<input type="submit" value="Enviar">
</form>
<?php
break;
};

?>

eu criei a pasta Uploads ficando assim no meu ftp: Public_html/Uploads/*e aqui ficariam as imagens...

e dá-me um erro :S

Warning: move_uploaded_file(): open_basedir restriction in effect. File(/Uploads/50_Cent_Bulletproof_Dvd_pal-front.jpg) is not within the allowed path(s): (/home/jegd:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/jegd/public_html/Uploads.php on line 14

O arquivo não pode ser enviado!Quer enviar mais arquivos? Clique aqui

line 14:

if(!move_uploaded_file($file, $mandar)) {

e já agora, eu nao posso dar um nome à minha escola no fixeiro? e outra coisa, no upload.php que tu fizest, onde é que ele recebe o conteudo das variaveis? nao devia ter um $file_name = $_POST["file"];

Por exemplo.... Cumps..

Share this post


Link to post
Share on other sites
David Pintassilgo

Já confirmas-te as permições?

Já confirmas-te se por exemplo

$mandar = $destino."/".$file_name;

aqui a variavel $mandar assume MESMO bem o que é suposto assumir? Confirma minusculas/maiusculas.


cool stuffs to check.

http://blog.zxcoders.com//

Share this post


Link to post
Share on other sites
joninho

Já confirmas-te as permições?

Já confirmas-te se por exemplo

$mandar = $destino."/".$file_name;

aqui a variavel $mandar assume MESMO bem o que é suposto assumir? Confirma minusculas/maiusculas.

o problema é por permissão :S que eu nao sei :S

A cena que dá é isto:

Warning: move_uploaded_file(): open_basedir restriction in effect. File(/usersimages/numb.gif) is not within the allowed path(s): (/home3/freemind:/usr/lib/php:/usr/local/lib/php:/tmp) in /home3/freemind/public_html/Uploads.php on line 9

O arquivo nÃo pode ser enviado!Quer enviar mais arquivos? Clique aqui

Share this post


Link to post
Share on other sites
skin
Ps: É necessario dar CHMOD 777 na pasta de destino no servidor!

como e que eu posso fazer isto??? e que com a explicação que deram eu n entendi.


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Share this post


Link to post
Share on other sites
joninho
Ps: É necessario dar CHMOD 777 na pasta de destino no servidor!

como e que eu posso fazer isto??? e que com a explicação que deram eu n entendi  :wallbash:

lol, liga-te ao teu servidor via ftp, e depois clique com o botao do lado direito em cima duma paasta, e aaxo k tem lá qualquer cena de opções, e tem cenas do tipo, write, read, etc.. ve se encontras, e depois poes um visto em todos, que vai ficar um CHMOD 777 :D

Share this post


Link to post
Share on other sites
skin

e se eu tiver o server no meu pc???


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Share this post


Link to post
Share on other sites
joninho

e se eu tiver o server no meu pc???

pois assim, ja nao sei, mas deve dar para entrar por ftp na mesma xD lol mete ip, host: localhost

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.