1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

aumentar a capaciade de upload

Discussão em 'Web Development' iniciada por pedroregal, 20 de Fevereiro de 2009. (Respostas: 13; Visualizações: 2489)

  1. oi bom dia,
    precisava de ajuda em php...

    nao consigo aumentar a capacidade de upload precisava para poder faxer upload de musicas...

    eu alterei no php.ini mas nao dá na mesma...
    podem ajudar-me como o faço no meu servidor???

    Obrigado
     
  2. Baderous

    Baderous Banido

    Se estiveres a trabalhar com MySQL tens de alterar o max_allowed_packet do ficheiro my.cnf, cujo valor por definição é 1MB. Outra solução (e melhor) é usar uma técnica denominada de Blob Streaming.
     
  3. k tecnica é esta??
    -- técnica denominada de Blob Streaming...

    nao sei, ajude-me
     
  4. mesmo assim da-me estes dois erros:


    Warning: upload_max_filesize of 8 bytes exceeded - file [musica=neyo- because of you.mp3] not saved in Unknown on line 0

    Warning: Cannot send session cache limiter - headers already sent in c:\phpdev\www\trabalhos\paginagrande\galeriam.php on line 1
    A extensão ou o tamanho dos ficheiros não é correcta.
     
  5. Baderous

    Baderous Banido

    O 1º warning deve-se ao limite imposto por essa variável. Provavelmente também terás de alterar.
    O 2º deve ser por causa de algum conflito no uso da função header.
    No Blob Streaming, em vez de enviares um ficheiro de uma vez só para a BD, envias porções do ficheiro que vais lendo sucessivamente até atingires o EOF do mesmo.
     
  6. mas essa variavel esta defenida com 50M...
    e o ficheiro tem 5M
     
  7. GaleriaM.php - Form
    Código:
    <form id="form1" method="POST" action="galeriaM.php?action=1" name="form1" enctype="multipart/form-data">
                      <p align="center"><span class="style2">Nome da Musica:</span></p>
                      <p align="center"> 
                        <input name="nome" type="text" size="45" />
                      </p>
                      <p align="center" class="style2">Cantor:</p>
                      <p align="center">
                        <input name="cantor" type="text" size="45" />
                      </p>
                      <p align="center" class="style2">Ficheiro:                </p>
                      <p align="center">
                        <input name="musica" type="file" size="30" />
                      </p>
                      <p align="center">&nbsp; </p>
                      <p align="center">
                      <input type="submit" value="Nova!" />
                    </p>
                    </form>
    
    
    
    
    <? if ($_GET['action']==1) {?>
    <? if (!($_SESSION['user'])) {?>
            <script language=javascript>
                alert("Erro: Voce tem de fazer o seu login, se ainda nao esta registe-se é GRATUITO.");
                var w=window.top;
                w.location="index.php";
            </script>
    <? }else{        ?>
    <?
    ligaBD();
    
    // Prepara a variável caso o formulário tenha sido postado
    $arquivo = isset($_FILES["musica"]) ? $_FILES["musica"] : FALSE;
    
    $config = array();
    // Tamano máximo da imagem, em bytes
    $config["tamanho"] = 100106883;
    // Largura Máxima, em pixels
    $config["largura"] = 4500;
    // Altura Máxima, em pixels
    $config["altura"] = 3500;
    // Diretório onde a imagem será salva
    $config["diretorio"] = "musicas/";
    
    // Gera um nome para a imagem e verifica se já não existe, caso exista, gera outro nome e assim sucessivamente..
    // Função Recursiva
    function nome($extensao){
        global $config;
    
        // Gera um nome único para a imagem
        $temp = substr(md5(uniqid(time())), 0, 10);
        $imagem_nome = $temp . "." . $extensao;
        
        // Verifica se o arquivo já existe, caso positivo, chama essa função novamente
        if(file_exists($config["diretorio"] . $imagem_nome))
        {
            $imagem_nome = nome($extensao);
        }
    
        return $imagem_nome;
    }
    
    if($arquivo)
    {
        $erro = array();
            
        if(!sizeof($erro))
        {
            // Pega extensão do arquivo, o indice 1 do array conterá a extensão
            preg_match("/\.(mp3){1}$/i", $arquivo["name"], $ext);
            //preg_match("/\.(mp2|mpeg|mpg|mpv2|mov|lsx|asf|asr|asx|avi|movie)$", $arquivo["name"], $ext);
            //preg_match("/\.(zip|asp|css|htm|html|stm|bas|txt|rtx|htc|xml)$", $arquivo["name"], $ext);
            //preg_match("/\.(zip|xml|mdb|asx|js|gz|hlp|ppt|pps|pot|xlw|xlt|xls|xml|xlc|xla|rtf|pdf|exe|class|bin|doc|docx)$", $arquivo["name"], $ext);
            //preg_match("/\.(au|snd|mid|rmi|mp3|m3u|ra|ram|wav)$", $arquivo["name"], $ext);
            
            // Gera nome único para a imagem
            $imagem_nome = nome($ext[1]);
    
            // Caminho de onde a imagem ficará
            $imagem_dir = $config["diretorio"] . $imagem_nome;
    
            // Faz o upload da imagem
            move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
    }
            $nomem = $_POST['nome'];
            $cantor = $_POST['cantor'];
            $file= "musicas/$imagem_nome";
            //        $codig = mysql_query("SELECT * FROM galeria order by cod_foto asc");
            //        $novo=mysql_result($codig, (mysql_num_rows($codig)-1),'cod_foto');
            
            $query1= mysql_query("INSERT INTO `musica` ( `cod_m` , `cantor` , `musica` , `link` , `login` ) VALUES ('', '$nomem', '$cantor', '$file', '$p')");
                                                 
                        echo "INSERT INTO `musica` ( `cod_m` , `cantor` , `musica` , `link` , `login` ) VALUES ('', '$nomem', '$cantor', '$file', '$p')";                 
            
    
    if (!($query1)){  echo "Erro"; 
        }else{ ?>
    <?  $a=$_GET['codf'];
        $e=$_POST['login'];
    ?>
    <!--        <script language="javascript">
                var d=window.top;
                d.location="blog.php";
                d.refresh;
            </script>
    --><?     }}}}?>
    
     
    Última edição pelo moderador: 20 de Fevereiro de 2009
  8. Baderous

    Baderous Banido

    Experimenta colocar isto:

    Código:
    <input type="hidden" name="MAX_FILE_SIZE" value="16777215">
    Antes de:

    Código:
    <input name="musica" type="file" size="30" />
    Aquele valor numérico representa o nº de bytes, naquele caso eram 16MB, usa um valor que se adapte ao que queres e vê se funciona. Não sei bem qual o efeito disto, mas tentar não custa.
     
  9. coloquei assim:
    <input type="hidden" name="MAX_FILE_SIZE" value="500000000000">

    e deu-me isto:

    Warning: upload_max_filesize of 8 bytes exceeded - file [musica=neyo- because of you.mp3] not saved in Unknown on line 0

    Warning: Cannot send session cache limiter - headers already sent in c:\phpdev\www\trabalhos\paginagrande\galeriam.php on line 1
    INSERT INTO `musica` ( `cod_m` , `cantor` , `musica` , `link` , `login` ) VALUES ('', 'asdasdasdasd', 'asdasdasdasd', 'musicas/4593dc6dcf.mp3', 'pedro11')
     
    Última edição: 20 de Fevereiro de 2009
  10. eRKULIX

    eRKULIX Suspenso

    que tipo de campo é o musica?
     
  11. eralha

    eralha Power Member

    porque nao guardas uma string em vez da musica, a string como referencia ao ficheiro no server....
     
  12. como faço isso??
    é para os utilizadores fazerem upload das musicas
     
  13. eralha

    eralha Power Member

    Posso estar errado, mas o que costumo fazer é do tipo: o user introduz o ficheiro, e apos fazer o submit do form, a pagina manda o ficheiro para o servidor (ver move();) e guardas o ficheiro numa pasta ex: /musicas/ apos isso guardas em base de dados uma referencia á localização do ficheiro ex: /musicas/file.mp3 depois so tens de ler o ficheiro com base na referencia que tens na bd.
     

Partilhar esta Página