Ajuda - Busca - Membros - Calendário
Versão Completa: Upload
Fórum Script Brasil > Programação & Desenvolvimento > PHP
cwarez
eae pessoal, beleza?

estou usando o seguinte codigo para fazer upload de imagens
porem,
quando a imagem é muito grande (maior de 2mb) ela não envia....porque?

CODE
if(is_dir("c_publicidade/fotos/$plano/$usuario")== False ){
mkdir ("c_publicidade/fotos/$plano/$usuario", 0700 );   // aqui e o diretorio aonde será criado tipo home/public-html/
}

    if(!empty($_FILES[images][name][0]))

    {

        while(list($key,$value) = each($_FILES[images][name]))

        {

            if(!empty($value))

            {
      // Pega extensão do arquivo
      preg_match("/.(gif|bmp|png|jpg|jpeg){1}$/i",
      $value, $ext);
      // Gera um nome único para a imagem
      $NewImageName = md5(uniqid(time())) . "." . $ext[1];
      
                copy($_FILES[images][tmp_name][$key], "c_publicidade/fotos/$plano/$usuario/".$NewImageName);

                $MyImages[] = $NewImageName;
            }
        }
        if(!empty($MyImages))
        {
            $ImageStr = implode("|", $MyImages);
        }

    }


vlw

ham...pode botar resolvido no meu ultimo tópico
ESerra
Existe um limite de upload, o padrão é exatamente 2mb isso é alterado no php.ini, se você estiver rodando isso no seu host entre em contato com eles...
cwarez
eu uso uma revenda minha
assinei uma revenda para hospedar os sites que faço entende
no plesk tem como alterar isso?

falouu
SK15
Em qualquer hospedagem normal ou revenda você não tem acesso a essa configurações ... logo você terá que contar com a boa vontade de quem administra o servidor para alterar esses valores ... porém no geral eles não muda configurações por "controle" ou "segurança" ...

Para pode mexer avontade você deve ter um servidor próprio em casa mesmo ou um dedicado ....

QUOTE(cwarez @ 22/09/2009 - 20:13) *
eu uso uma revenda minha
assinei uma revenda para hospedar os sites que faço entende
no plesk tem como alterar isso?

falouu

cwarez
bom, vamos denovo la no meu codigo
CODE
<?php
include"../config.php";
//upload da foto

  if(is_dir("fotos/$plano/$usuario")== False ){
mkdir ("fotos/$plano/$usuario", 0700 );   // aqui e o diretorio aonde será criado tipo home/public-html/
}

    if(!empty($_FILES[images][name][0]))

    {

        while(list($key,$value) = each($_FILES[images][name]))

        {

            if(!empty($value))

            {
      // Pega extensão do arquivo
      preg_match("/.(gif|bmp|png|jpg|jpeg){1}$/i",
      $value, $ext);
      // Gera um nome único para a imagem
      $NewImageName = md5(uniqid(time())) . "." . $ext[1];
      
                copy($_FILES[images][tmp_name][$key], "fotos/$plano/$usuario/".$NewImageName);

                $MyImages[] = $NewImageName;
            }
        }
  if(!empty($MyImages))
        {
            $ImageStr = implode("|", $MyImages);
        }

    }
    $q1 = "insert into fotos set foto = '$ImageStr', login_user = '$usuario', plano = '$plano'";

     echo"<script> alert('Fotos Adicionadas com Êxito!')</script>
<meta HTTP-EQUIV = \"Refresh\" CONTENT = \"0; URL = ../index.php?pagina=c_publicidade/painel&login=$usuario&plano=$plano\">";


    mysql_query($q1);
    ?>


como podemos ver, ele junta todos os nomes com o implode e joga tudo em um registro só na tabela, certo?
(ex.: ele cria um registro assim 'foto1|foto2|foto3|foto4')

então, não teria como fazer cada foto um registro novo ?

espero que entenda minha duvida, vlw brother
cwarez
eu tentei assim

$q1 = "insert into fotos set foto = '$ImageStr', login_user = '$usuario', plano = '$plano'";


alterar para

$q1 = "insert into fotos set foto = '$NewImageName, login_user = '$usuario', plano = '$plano'";

mas também nem funcionou
ajudem ae pessoal please
SK15
Re-olhando seu código o SQL está errado ... você esta misturando UPDATE com INSERT ....

INSERT (adiciona novos valores)
SQL
INSERT INTO fotos (foto, login_user, plano) VALUES ('$ImageStr', '$usuario', '$plano');


UPDATE (atualiza registro existentes)
SQL
UPDATE fotos SET foto = '$ImageStr', login_user = '$usuario', plano = '$plano';


Porém se o problema ainda for imagens maior que 2MBs não há nada a ser feito no seu código pois é uma configuração do servidor ...
cwarez
bom, mas isso ta tranquilo.
minha duvida agora mesmo é a seguinte

do jeito q ele ta, vamos supor

se eu por 10fotos e upar, ele vai criar um registro com os nomes das fotos separados por |
ex.: foto1|foto2|foto3|......

bom, queria saber c tem como criar uma registro para cada foto entende?
vlw
cwarez
eu consegui dividir em strings
usando o explo

dai consegui que ficasse assim
foto1
foto2
foto3

porem, como faço para da um insert em cada foto dessa????

valeu
SK15
É so chamar várias vezes o INSERT tongue.gif

CODE
...
while(list($key,$value) = each($_FILES[images][name])) {
if (!empty($value)) {
  preg_match("/.(gif|bmp|png|jpg|jpeg){1}$/i", $value, $ext);
  $NewImageName = md5(uniqid(time())) . "." . $ext[1];
  copy($_FILES[images][tmp_name][$key], "fotos/$plano/$usuario/".$NewImageName);

  // Aqui ele vai repetir junto com o While
  mysql_query("INSERT INTO fotos (foto, login_user, plano) VALUES ('$NewImageName', '$usuario', '$plano'); ");
}
}
...
cwarez
valeu brother
uma semana esperando essa resposta rsrs....agora eu consigo
muito obrigado mesmo

mas aqui, sem querer abusar rsrs...deixa eu te perguntar

se eu mandar tudo pro mesmo registro....e as fotos ficarem na tabela fotos com os nomes separados por | (ex.: foto1|foto2|foto3|......)

teria como eu fazer uma legenda para cada foto?

valeuuu

Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2013 Invision Power Services, Inc.