Ir para o conteúdo
filip_e

Sistema de upload de arquivos

Mensagens Recomendadas

filip_e    0
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!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
deathseeker25    6
deathseeker25

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

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

Cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
satanuke    1
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>"

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Kallean    0
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)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
satanuke    1
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...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
styr    0
styr

Desculpem a profunda ignorancia mas...

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

o que é isto ? e como se faz ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
vbmaster    5
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).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
joninho    0
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..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
David Pintassilgo    5
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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
joninho    0
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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
skin    0
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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
joninho    0
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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
joninho    0
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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rgcouto    0
rgcouto

pq eu nao consigo por isso a funcionar?? Aparece-me sempre "Nao foi possivel enviar o arquivo"

file onde aparece o form

<form action="content/fotos/upload.php" method="POST" enctype="multipart/form-data">
 <table width="200" border="0" cellpadding="3" cellspacing="0" align="center">
   <tr>
     <td colspan="2" background="images/barra.jpg"><span class="style1">Nova Foto </span></td>
   </tr>
   <tr>
     <td bgcolor="#CCCCCC"><p class="style3">Nome:</p></td>
     <td bgcolor="#CCCCCC"><input type="text" name="name"></td>
   </tr>
   <tr>
     <td bgcolor="#CCCCCC"><span class="style3">Foto:</span></td>
     <td bgcolor="#CCCCCC"><input type="file" name="file_name"></td>
   </tr>
   <tr>
     <td bgcolor="#CCCCCC"><input name="submit" type="submit" value="Enviar"></td>
     <td bgcolor="#CCCCCC"><input name="reset" type="reset" value="Apagar"></td>
   </tr>
 </table>
</form>

file upload.php

$destino = "../../../imagens/galeria"; //Pasta onde serão armazenados os uploads

$file_name = $_POST["file_name"];

$send = $destiny."/".$file_name;
if(!move_uploaded_file($file_name, $send)) {
 echo "O arquivo não pode ser enviado!";
}
else {
 echo "O arquivo foi enviado!";
}

?>

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
operacoes    0
operacoes

tenho o servidor em casa usando windows.

easy php 1.8 com tudo updatado..

o problema é que eu mudo as configurações das pastar que estão por defeito em READ ONLY

mas depois, aquilo volta ao mesmo...

é automático. fiz isso umas 20 vezes seguidas e reboot e outra vez e nada... fonix..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
-IceBurn-    0
-IceBurn-

Boas!

Em resposta ao rgcouto, não estás a conseguir porque no ficheiro upload.php a variável da path não corresponde á que tens depois.

Primeiro tens

$destino

e depois

$destiny

Agora aconselho vivamente a não utilizarem este código para uploads do público, ponham o código dentro de uma pasta bem protegida com .htpassw e htaccess, pois a simplicidade do código pode trazer-vos surpresas desagradáveis...

Para quem trabalhar com Unix em localhost, uma opção a utilizarem FTP para atribuirem as permissões será a função mkdir();

Algo tipo:

<?php

$destino = "caminho/pasta_a_criar";
if (mkdir($destino, 0777))
echo "Pasta criada com sucesso.";
else
echo "Não foi possível criar a pasta";

?>

Assim já vão conseguir dar as permissões necessárias, mas certefiquem-se que a pasta ainda não existe antes de correr o script!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Vieri_score    0
Vieri_score

so uma coisa perante isto tudo podiam me facultar ou explciar como faco depois um apagina ke mostre todos os fixeiros ke foram enviados po servidor???

outtra duvida eu fix como tava no primeiro post os codigos tal e kal como meteram e da isto apos o upload

Warning: move_uploaded_file(/destino/Future logo.jpg): failed to open stream: No such file or directory in /home/www/thethe72.freehostia.com/upload.php on line 13

Warning: move_uploaded_file(): Unable to move '/tmp/phpOUVdgS' to '/destino/Future logo.jpg' in /home/www/thethe72.freehostia.com/upload.php on line 13

O arquivo não pode ser enviado!

ajudem me

lol

Obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade