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

Criar link de upload em Dreamweaver


Guest Diogo reitas

Pergunta

Guest Diogo reitas

Boa tarde,

Eu gostaria de saber como faço para criar um campo de upload em dreamweaver, ou seja, como faço para permitir que alguém faça upload de algum ficheiro no meu website.

Existe algum script para isso?

Obrigado.

Estou mesmo precisado

Link para o comentário
Compartilhar em outros sites

21 respostass a esta questão

Posts Recomendados

  • 0

Um simples script de upload:

<?php
if ($_POST["upload"]){
    if(isset($_FILES["Imagem"])){
        $Imagem = $_FILES["Imagem"];
        $Tamanhos = getimagesize($Imagem["tmp_name"]);
        $TipoArquivo = $_FILES['Imagem']['type'];
        $Data = date("dmY-His");
        $Nome_Imagem = $Imagem["name"];
        $extensao = explode(".", $Nome_Imagem);
        $Extensao = $extensao[1];
        $Pasta = "arquivos/";
        $Novo_Nome = $Pasta . $Data . "." . $Extensao;
        $Caminho = $Pasta . $Novo_Nome;
        move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);
        }
    }
?>
<form name="Upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="Imagem" /><input type="submit" value="Enviar" />
<input type="hidden" name="upload" value="1" />
</form>

Aqui ele altera o nome do arquivo para data e hora, um exemplo: 07022008-110857.jpg, para que não tenha o problema de já ter um arquivo com o mesmo nome no servidor.

Não sei se o dreamweaver já tem isso pronto, acredito que não, mas basicamente:

O formulário precisa ter esse enctype, o multipart/form-data, para saber que existem outros tipos de dados nele.

O tipo de campo que você utiliza no formulário é o file, pois este te deixará clicar no botão e procurar os arquivos no seu HD.

A superglobal que você utiliza no PHP é a $_FILES, onde ficam os arquivos que você fez upload.

E, por fim, pra salvar o arquivo em um diretório específico você utiliza o move_uploaded_file().

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Diogo Freitas
Um simples script de upload:

<?php
if ($_POST["upload"]){
    if(isset($_FILES["Imagem"])){
        $Imagem = $_FILES["Imagem"];
        $Tamanhos = getimagesize($Imagem["tmp_name"]);
        $TipoArquivo = $_FILES['Imagem']['type'];
        $Data = date("dmY-His");
        $Nome_Imagem = $Imagem["name"];
        $extensao = explode(".", $Nome_Imagem);
        $Extensao = $extensao[1];
        $Pasta = "arquivos/";
        $Novo_Nome = $Pasta . $Data . "." . $Extensao;
        $Caminho = $Pasta . $Novo_Nome;
        move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);
        }
    }
?>
<form name="Upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="Imagem" /><input type="submit" value="Enviar" />
<input type="hidden" name="upload" value="1" />
</form>

Aqui ele altera o nome do arquivo para data e hora, um exemplo: 07022008-110857.jpg, para que não tenha o problema de já ter um arquivo com o mesmo nome no servidor.

Não sei se o dreamweaver já tem isso pronto, acredito que não, mas basicamente:

O formulário precisa ter esse enctype, o multipart/form-data, para saber que existem outros tipos de dados nele.

O tipo de campo que você utiliza no formulário é o file, pois este te deixará clicar no botão e procurar os arquivos no seu HD.

A superglobal que você utiliza no PHP é a $_FILES, onde ficam os arquivos que você fez upload.

E, por fim, pra salvar o arquivo em um diretório específico você utiliza o move_uploaded_file().

muito obrigado. Já agora. Este código só dá para upload de imagens?

Link para o comentário
Compartilhar em outros sites

  • 0

Não, este código faz upload de qualquer tipo de arquivo.

Para aceitar somente upload de imagens você terá que conferir o mime-type do arquivo e não permitir que arquivos que não sejam de imagens sejam salvos.

Neste próprio código é fácil adaptar isso, ficando assim:

<?php
if ($_POST["upload"]){
    if(isset($_FILES["Imagem"])){
        $Imagem = $_FILES["Imagem"];
        $Tamanhos = getimagesize($Imagem["tmp_name"]);
        $TipoArquivo = $_FILES['Imagem']['type'];
        if(!eregi("^(image)\/(pjpeg|jpeg|jpg|gif|png)$", $TipoArquivo)){
            print("<p align=\"center\">Tipo de arquivo desconhecido!</p>");
            }
        else {
            $Data = date("dmY-His");
            $Nome_Imagem = $Imagem["name"];
            $extensao = explode(".", $Nome_Imagem);
            $Extensao = $extensao[1];
            $Pasta = "arquivos/";
            $Novo_Nome = $Pasta . $Data . "." . $Extensao;
            $Caminho = $Pasta . $Novo_Nome;
            move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);
            }
        }
    }
?>
<form name="Upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="Imagem" /><input type="submit" value="Enviar" />
<input type="hidden" name="upload" value="1" />
</form>

Link para o comentário
Compartilhar em outros sites

  • 0

No caso deste script, os arquivos vão para a pasta "arquivos".

Essa pasta já deve existir no sistema.

Você pode mudar a pasta em que os arquivos serão salvos editando a linha:

$Pasta = "arquivos/";
Pode também fazer o script criar essa pasta, se ela não existir, colocando logo abaixo dessa linha, as seguintes:
if(!file_exists($Pasta)){
    mkdir($Pasta);
    }
Complementando o código, do jeito que você disse na MP:
<?php
if ($_POST["upload"]){
    if(isset($_FILES["Imagem"])){
        $Imagem = $_FILES["Imagem"];
        $Tamanhos = getimagesize($Imagem["tmp_name"]);
        $TipoArquivo = $_FILES['Imagem']['type'];
        if(!eregi("^(image)\/(pjpeg|jpeg|jpg|gif|png)$", $TipoArquivo)){
            print("<p align=\"center\">Tipo de arquivo desconhecido!</p>");
            }
        else {
            $Data = date("dmY-His");
            $Nome_Imagem = $Imagem["name"];
            $extensao = explode(".", $Nome_Imagem);
            $Extensao = $extensao[1];
            $Pasta = "imagens/";
            if(!file_exists($Pasta)){
        mkdir($Pasta);
        }
            $Novo_Nome = $Pasta . $Data . "." . $Extensao;
            $Caminho = $Pasta . $Novo_Nome;
            move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);
        Print("Imagem exibita com &ecirc;xito!");
            }
        }
    }
?>
<form name="Upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="Imagem" /><input type="submit" value="Enviar" />
<input type="hidden" name="upload" value="1" />
</form>

Link para o comentário
Compartilhar em outros sites

  • 0

Se você colocar o site no ar, o script considerará o diretório onde o site está como raíz.

Depois da raíz, ele sobe mais um nível que é a pasta que você vai especificar.

Então se você coloca o site na pasta site, a pasta imagens estará em site/imagens .

A pasta é definida no próprio script, ali na variável $Pasta .

Link para o comentário
Compartilhar em outros sites

  • 0

Peço desculpa mas realmente não estou conseguindo.

Vou dizer exactamente o que fiz.

Criei uma página php em dreamweaver com o código que me deu e guardei como index.

Depois fiz upload do php indez pelo ftp (estou a utilizar um subdominio dentro de outro site que tenho como teste).

AS pastas são: - public_html/urlsubdominio (coloquei aqui o index)

Depois criei uma pasta com o nome upload (já tinha alterado o novo da pasta de destino dos uploads) em "public_html/urldosubdominio"

Não entendo o que está mal.

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, tudo isso é possível!

Para a pessoa receber um e-mail quando enviar um arquivo (ficheiro) você precisará colocar a função mail() no script, logo após o move_uploaded_file.

Lembrando que você precisará de mais um campo no formulário, para pegar o e-mail da pessoa.

Um limite máximo no tamanho do arquivo também é possível sim, você lê o tamanho do arquivo utilizando o $_FILES['Imagem']['size'], aí é só utilizar o if / else para criar a condição do script.

Só lembrando que o tamanho é em bytes.

Link para o comentário
Compartilhar em outros sites

  • 0

Bem Leandro, você tem sido uma grande ajuda.

Já consegui pôr a enviar-me um mail quando alguém fizer upload, mas não consegui colocar como obrigatório o preenchimento do email da pessoa.

Já agora, e desculpa se te estou massando, mas sabe dar-me umas dicas acerca de bases de dados?

Eu pergunto isto porque quase todos os scripts em php que saquei deste site (para chat, data e hora, etc) pedem bases de dados sql mas na verdade eu não faço a minima ideia do que se trata.

muito obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

O MySQL é uma base de dados em forma de SQL, para você acessá-la você utiliza um front-end que acessará o servidor de base de dados.

O mais comum é o phpMyAdmin, que inclusive já está instalado aí se você utilizar algum pacote WAMP.

Você pode fazer esse teste acessando http://localhost/phpmyadmin .

O frontend é até fácil mexer, e bem intuitivo, você acabará entendendo como ele funciona!

Mas o que eu realmente recomendo é que você dê uma olhada no manual do MySQL, assim você fica fera!

http://www.criarweb.com/manuais/mysql/

Você pode tornar obrigatório colocando outro if no script, vamos supor, se o campo chamar email:

if (!isset($_POST["email"])){
print("O campo e-mail deve ser preenchido");
}

Link para o comentário
Compartilhar em outros sites

  • 0

Olá outra vez.

Obrigado pelas informações.

Eu estive a ler os links que me deu e pelo que eu entendi terei de fazer download do phpMyAdmin e do MySql. Depois, instalo o php e remeto para o pc que tem a base de dados em Sql.

Como faço para criar a base de dados?

Imaginemos que a base de dados pretende fornecer informação para um sistema de login, ela actualiza-se automáticamente?

Eu necessitava de umas ideias gerais, porque na verdade não entendo alguma da informação dos links que me passou.

muito obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

Sou nova aqui e estou com essa mesma dúvida! O problema é que não saco muito e estou fazendo um form no dreamweaver que deverá conter o filefield mandando para meu email os dados do cliente, além da imagem... Estou inserindo o script abaixo, mas só recebo os dados e nada da imagem, alguém pode me ajudar, por favor?! :rolleyes:

Esqueci de colocar meu script:

<?php

if ($_POST["upload"]){

if(isset($_FILES["Imagem"])){

$Imagem = $_FILES["Imagem"];

$Tamanhos = getimagesize($Imagem["tmp_name"]);

$TipoArquivo = $_FILES['Imagem']['type'];

if(!eregi("^(image)\/(pjpeg|jpeg|jpg|gif|png)$", $TipoArquivo)){

print("<p align=\"center\">Tipo de arquivo desconhecido!</p>");

}

else {

$Data = date("dmY-His");

$Nome_Imagem = $Imagem["name"];

$extensao = explode(".", $Nome_Imagem);

$Extensao = $extensao[1];

$Pasta = "imagens/";

if(!file_exists($Pasta)){

mkdir($Pasta);

}

$Novo_Nome = $Pasta . $Data . "." . $Extensao;

$Caminho = $Pasta . $Novo_Nome;

move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);

Print("Imagem exibita com &ecirc;xito!");

}

}

}

?>

<form name=Upload" action="<?php $_SERVER['PHP_SELF]; ?>" method="post" enctype="multipart/form-data">

<input type="file" name="Imagem" /><input type="submit" value="Enviar" />

<input type="hidden" name="upload" value="1" />

</form>

<?PHP

/* E-mail que receberá os dados do formulário */

$email_destino="meuemail@gmail.com";

/*****************************************************************

Algumas informações que constarão no cabeçalho do e-mail

******************************************************************/

$cabecalho = "From: \"Orcamento do Site\" \n"; /* Exibe de onde partiu este formulário. */

$cabecalho .= "Reply-To: ".$_POST['nome']."<".$_POST['email'].">\n";

$cabecalho .= "X-Mailer: PHP v".phpversion()."\n"; /* Versão do X-Mailer responsável pelo envio */

$cabecalho .= "Content-type: text/html; charset=iso-8859-1"."\r\n"; /* Responsável pela tranformação do texto em formato HTML */

$cabecalho .= "MIME-Version: 1.0"."\r\n";

/*****************************************************************

Conteúdo do e-mail extraído do formulário

******************************************************************/

$conteudo = "Mensagem enviada por:".$_POST['nome']. "\n";

$conteudo .= "Empresa:".$_POST['empresa']. "\n";

$conteudo .= "Email:".$_POST['email']. "\n";

$conteudo .= "Telefone:".$_POST['telefone']. "\n";

$conteudo .= "Cadeira:".$_POST['marca']. "\n";

$conteudo .= "Modelo:".$_POST['modelo']. "\n";

$conteudo .= "Revestimento cadeira:".$_POST['revestimento']. "\n";

$conteudo .= "Espaldar:".$_POST['espaldar']. "\n";

$conteudo .= "Painel:".$_POST['medida']. "\n";

$conteudo .= "Tipo de Revestimento:".$_POST['revestimento2']. "\n";

$conteudo .= "Mensagem:".$_POST['mensagem']."\n";

$conteudo .= "Imagem:".$_POST['upload']."\n";

$conteudo .= "IP:".$_SERVER['REMOTE_ADDR']. "\n";

/*****************************************************************

Mensagens de erro e confirmação de envio

******************************************************************/

if (mail($email_destino,$_POST['assunto'],$conteudo,$cabecalho)) {

echo "Sua mensagem foi enviada com sucesso!";

}

else {

echo "Ops! Aconteceu um erro de envio. Por favor, tente novamente ou entre em contato com o administrador do site.";

}

?>

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...