IPB

Bem-vindo Visitante ( Entrar | Registrar )

> ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.

> Upload com mais de 6 fotos + a principal, bem complexo
Tom_wp
post 21/11/2007 20:11:23
Post #1



Ícone do grupo

Grupo: Membros
Posts: 22
Entrou: 3/3/2007
De: São Carlos
Usuário Nº: 19514



Olá comunidade, sou velhinho aqui. mas nao posto muito, sempre tiro duvida pessoalmente com o pessoal no MSN daqui do forum.
bom mais vamos la...
oque eu preciso é bem complexo e ja pensei e nao consegui chegar em uma conclusao.
vamos dividir isso em 2 partes para ficar bem explicado:

PARTE DO SITE:

bom a parte do site terá uma secao chamada fotos ondi clicando nela abrira uma pagina que conterá 1 foto de cada show que o grupo musical fez e sua descricao.
exemplo:
FOTO - DESCRICAO...
até ai tranquilo...nessa foto terá que ter um link ondi quando clicar na foto chamará uma outra pagina e nela contendo todas as fotos do show, mas apenas daquele show. depois disso quando clica em cada foto precisa abrir uma pop-up com a imagem ampliada.

PARTE DA EDIÇAO
como o site está inteiro em PHP e MYSQL tem que ter a parte da area restrita, ondi a pessoa incluirá as fotos.
vamos la...
nessa area precisa de uma inclusao de tudo isso...nela tem que ter:
a descricao para ele escrever...
a foto principal ondi aparece uma soh do show
e as outras 6 fotos q quando clicar nessa principal abrira essas outras 6.

seria isso minha duvida...espero ter me expressado bem.
Obrigado espero resposta.
Go to the top of the page
 
+Quote Post
 
Start new topic
Respostas
João Melo
post 16/12/2007 01:12:52
Post #2



Ícone do grupo

Grupo: Membros
Posts: 55
Entrou: 16/2/2007
De: Salvador
Usuário Nº: 19209



vc pode fazer um formulário bem menor só com um input, pedindo para o usuário enviar um zip com as fotos.
Fiz um cadastro de fotos assim e coloquei uma segurança para ser executado somente as fotos pq algum engraçadinho pode enviar um exe com vírus.
Vamos ao q interessa.
salva_foto.php
CÓDIGO
<?
require 'conect.php'; //Aquivo de conecção com o banco de dados

function retira_acentos( $texto ) // Função para retirar os acentos
{
$array1 = array( "á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç"
, "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç" );
$array2 = array( "a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c"
, "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C" );
return str_replace( $array1, $array2, $texto );
}

$dir = str_replace(" ","_",retira_acentos($_POST['pasta']));// Aqui retiro os espaços em branco e troco por "_" e uso a funcão retira_acentos
mkdir ($dir, 0777); // Cria a pasta $_POST['pasta'] e CMOD 777 - Para liberar tudo.

$fotos_zip = $_POST[fotos_zip];
$diretorio = $dir;
$dir2= $diretorio;

// DESCOMPACTA OS ARQUIVOS
$arquivo = $_FILES['fotos_zip']['name']; // pega nome do arquivo
$arquivotemp = $_FILES['fotos_zip']['tmp_name']; // pega nome temporario do arquivo
if(copy($arquivotemp,$uploaddir.$arquivo)){ // faz copia do arquivo zipado
require_once('zip.lib.php'); //requer o arquivo, deve estar na mesma pasta
$archive = new PclZip($uploaddir.$arquivo);
$list = $archive->extract(PCLZIP_OPT_PATH, "$dir2",PCLZIP_OPT_REMOVE_ALL_PATH,PCLZIP_OPT_BY_PREG, "/jpg$/"); // extrai todos arquivos

//unlink($uploaddir.$arquivo); // exclui o arquivo zip mandado
// ^ Aqui deixei comentado por estar deletando o arquivo zip e pensando que o usuário tenha tenha somente este zip com as fotos

echo "<strong>$arquivo</strong> enviado com sucesso!";
// FIM DO DESCOMPACTA OS ARQUIVOS
}
mysql_query("INSERT INTO fotos (id, pasta) VALUES (NULL, '$dir2')");
//Gravando no bd o nome da pasta digitado pelo usuário $dir2
?>

cad_foto.htm
HTML
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function validaarquivo(campo) {
TamanhoString = campo.length;
extensao = campo.substr(TamanhoString - 4,TamanhoString);
if (TamanhoString == 0 ) {
alert('Você precisa selecionar um arquivo antes de transmitir.');
return false;
} else {
var ext = new Array('.zip','.rar'); //Aqui determino o tipo de arquivo = Array('.zip','.rar','.html','etc')
for(var i = 0; i < ext.length; i++) {
if (extensao == ext[i]){
flag = "ok";
break;
} else {
flag = "erro";
}}
if (flag=="erro"){ //Caso não seja a extenção permitida exibe a menssagem
alert('Tipo de arquivo não permitido\nSomente arquivos do tipo (.ZIP/.RAR) com fotos\nOutro arquivos que contenham no zip não serão executados.');
return false;
}}
caminhourl = "salva_foto.php"; //Corresponde ao action do form
window.document.forms[0].action = caminhourl;
window.document.forms[0].submit();
return true;
}
</script>
</head>

<body onload="document.getElementById('arquivo').focus()">
<form method="post" enctype="multipart/form-data" id="form" name="formulario">
<label for="arquivo">Enviar arquivo:</label><br>
<input type="file" name="fotos_zip" id="arquivo" size="25" tabindex="15" accesskey="2" ContextHelp="Entre com o nome do arquivo ou utilize o botão brouse (pesquisar) ao lado." title="Digite a localização do arquivo ou utilize o botão Browse (pesquisar) para localizar. Para utilizar o botão Browse via teclado com o Internet Explorer, pressione a tecla espaço com o botão selecionado.">
<br />Digite o nome do evento:<br>
<input type="text" name="pasta"><br />
<input type="button" name="TRANSMITIR" value="Enviar" onClick="return validaarquivo(formulario.fotos_zip.value)" tabindex="30"><p></p>
</form>
</body>
</html>
Go to the top of the page
 
+Quote Post

Posts neste tópico


Reply to this topicStart new topic
1 usuário(s) está(ão) lendo este tópico (1 visitantes e 0 usuários anônimos)
0 membros:

 

Modos de Exibição: Mudar para: Padrão · Mudar para: Linear+ · Outline


RSS Versão Simples Horário: 9th February 2010 - 09:32 AM