Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    194

    limite invio/gestione files del servizio host?!

    Salve a tutti, mi trovo di fronte ad una faccenda assai strana e che non mi spiego.
    Credo che abbia a che fare con qualche liitazione del servizio web hosting, infatti ho questo problema solo con quella compagnia. Ho già inviato un ticket di assistenza ma per ora non sanno darmi una risposta, spero quindi ci sia qualcuno che abbia già avuto un'esperienza simile.

    In pratica ho un form con un campo input file ed un testo. Il file è un'immagine che va nel database come longblob, il testo come varchar. La pagina web tira fuori dal database le mie foto con la possibilità di modificarne il file ed il testo. Una cosa molto semplice: clicchi più per aggiungere una foto oppure selezioni un nuovo file per sostituire quella presente.
    Il problema è che al raggiungimento di venti foto non riesco a caricarne di nuove. Le foto nel database sono divise per categoria, se vado in un'altra pagina, quindi un'altra categoria, posso continuare ad aggiungerne ma al raggiungimento della ventesima anche li si ferma.
    Con altri web hosting non ho mai avuto questo problema.
    Avete qualche idea?
    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ciao,

    come mai hai scelto di caricare le immagini nel DB e non in una cartella (upload) e salvare solo il nome del file nel DB?

    Roberto

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Detta così potrebbe essere qualsiasi cosa, qui comunque si parla di codice PHP, se pensi di avere problemi col codice postalo, se pensi che sia una limitazione del server devi parlarne nella sezione dedicata ai server.

    Comunque sono anche io (così come penso la totalità degli sviluppatori) del parere che le immagini andrebbero salvate nel filesystem (cartelle), non direttamente dentro al db, la gestione sarebbe molto più semplice ed il db più snello e reattivo.
    Giusto un'idea: l'hosting potrebbe prevedere una idmensione massima per le tabelle, raggiunta la dimensione, niente più inserimenti (motivo in più per salvare le immagini dentro le cartelle), ma questo te lo saprà dire solo l'assistenza dell'hosting. E' strano comunque che succeda sempre esattamente alla ventesima, sicuro che sia sempre alla ventesima? Se sì, la spiegazione potrebbe essere è che le immagini abbiano tutte dimensioni molto simili, in caso contrario si tratta di coincidenze.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    194
    Quote Originariamente inviata da robynosse Visualizza il messaggio
    Ciao,

    come mai hai scelto di caricare le immagini nel DB e non in una cartella (upload) e salvare solo il nome del file nel DB?

    Roberto
    E' un lavoro vecchio che ho trasferito in un nuovo hosting. Al tempo usavo le conoscenze che avevo e così mi era stato insegnato. Mi secherebbe non poco dover rimetterci mani.
    Oggi lavoro con immagini su cartelle ma trovo comunque la gestione più semplice da database, soprattutto quando ci sono più dati correlati, come dire... ho tutto in un solo contenitore.

    E' strano comunque che succeda sempre esattamente alla ventesima, sicuro che sia sempre alla ventesima? Se sì, la spiegazione potrebbe essere è che le immagini abbiano tutte dimensioni molto simili, in caso contrario si tratta di coincidenze.
    Potrebbe essere un discorso di dimensioni, le immagini sono tutte ridimensionate e quindi hanno bene o male tutte lo stesso peso, verificherò.
    Grazie
    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    194
    Mi correggo scusate: non può essere un discorso di dimensioni perché tutte le immagini, di tutte le categorie, sono sulla stessa tabella.
    Le tiro fuori tramite il campo categoria.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    194
    Dunque, ho verificato che il problema non è nel database perché le immagini oltre la ventesima non vengono salvate neppure su cartella. Resta il fatto che succede solo su quel host.
    Vi posto tutti i codici, ditemi se c'è un motivo per il quale dovrebbe fermarsi al ventesimo caricamento.
    Grazie

    Pagina con il form di caricamento e modifica

    codice HTML:
    <div id="wrapper">
     <div id="home"></div>
     <?php include 'extended/gallery_menu.php';?>
     
     <div id="sottomenu"></div>
     <div id="primafascia">
      <div id="logo2"><img src="images/logo.png" alt="" /></div>
       <div class="title">
        <h1>Galleria</h1>
       </div>
        <h2>Eventi</h2>
        
       <form method="post" enctype="multipart/form-data">
        <?php 
        $categoria = eventi;
        $sql="SELECT * FROM `galleria` WHERE categoria='$categoria'";
        $dati=mysql_query($sql);
        while($row=mysql_fetch_array($dati))
        {
        ?>
        <div class="quadro">
         <button class="cancella elimina" type="submit" formaction="db/delete.php?gallery&categoria=<?php echo $row['categoria']; ?>&id=<?php echo $row["id"]; ?>"><img src="images/icone/chiudi.png" alt="elimina"></button>
         <div class="cornice">
          <div class="galleryimg" style="background:#000 url(data:<?php echo $row['type']; ?>;base64,<?php echo $row['thumb']; ?>) center center no-repeat;  background-size: cover; ">
           <a href="<?php echo 'db/getimag.php?id='.$row['id'] ;?>"><img src="images/mascherina.png" alt="clicca per ingrandire" title="clicca per ingrandire"></a>
          </div>
         </div>
         <div class="clear"></div>
         <input class="header3" style="width:98%" type="text" name="titolo[]" value="<?php echo $row['titolo']; ?>" placeholder="Qui il titolo" />
         <input class="aggiungi bottom" type="file" name="modifica[]" placeholder="modifica" />
         <input class="nascosto" type="text" name="id[]" value="<?php echo $row["id"]; ?>" />
         <div class="clear"></div>
        </div>
        <?php
        }
        ?>
        
        <div class="quadro abbassa">
         <div class="cornice">
          <div class="galleryimg">
          <img src="images/icone/add.jpg" alt="clicca per aggiungere un file" title="clicca per aggiungere un file">
          <input class="add" type="file" name="userFile" />
          </div>      
         </div>
         <input class="aggiungi bottom width100" type="text" name="nuovo" placeholder="Qui il titolo" />
        </div>
        
         <input class="nascosto" type="text" name="key" value="<?php echo $key; ?>" />
         <input class="nascosto" type="text" name="categoria" value="<?php echo $categoria ; ?>" />
         <button class="salva" type="submit" formaction="db/gallery_upload.php">Salva</button>
       </form>
       
     </div>
    <?php include 'extended/footer.php';?>
    </div><!--wrapper-->


    Pagina gallery_upload

    Codice PHP:
    <!DOCTYPE html>
    <html lang="it">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    </head>
    <body onload="document.forms[0].submit();">
    <?php

      
    include '../db/connessione.php';
      
    $id $_POST['id'];
      
    $newid $_POST['id'];
      
    $titolo $_POST['titolo'];
      
    $nuovo $_POST['nuovo'];
      
    $percorsothumb '../images/thumbs/galleria/';
      
    $percorsoimg '../images/galleria/';
      
    $nomeimg $_FILES['userFile']['name'];
      
    $categoria $_POST['categoria'];
      
      if(
    get_magic_quotes_gpc()) {$nuovo stripslashes($nuovo);}
      
    $nuovo mysql_real_escape_string($nuovo);
        
      
      
      
    //se sto caricando una nuova foto
      
    if (!empty($_FILES['userFile']['type']))
      {
       
         
    // Ottengo le informazioni sull'immagine originale
         
    list($width$height$type$attr) = getimagesize ($_FILES['userFile']['tmp_name']);
         
         
    //controllo se l'estensione è supportata
         
    if ($type==1$estensione=gif;
         else if (
    $type==2$estensione=jpeg;
         else if (
    $type==3$estensione=png;
         else die (
    '<h1>Errore</h1><br/><h3>Estensione del file non supportata</h3>');
         
         
    //verifico il file
         
    $handle fopen ($_FILES['userFile']['tmp_name'], "r+") or die ('<h1>Errore</h1><br/><h3>impossibile aprire il file</h3>');
         
    $image fread ($handlefilesize($_FILES['userFile']['tmp_name'])) or die('<h1>Errore</h1><br/><h3>impossibile leggere il file</h3>');
         
    fclose ($handle);
         
    $type 'image/'.$estensione;
      
         
    //ridimensiono l'immagine
         
    include'../db/resizegallery.php';
         
         
    //converto le immagini
         
    $thumb base64_encode(file_get_contents("$percorsothumb$nomeimg"));
         
    $image base64_encode(file_get_contents("$percorsoimg$nomeimg"));
         
         
    //inserisco nel database
         
    $query 'INSERT INTO galleria (titolo,immagine,thumb,type,estensione,categoria) VALUES ("' $nuovo '","' $image '","' $thumb '","' $type'","' $estensione '","' $categoria '")';
         
    $result mysql_query($query);
         
         
    //se ci sono errori mi fermo se no..
         
    if (!$result) {die("Errore:" mysql_error());}
         else { 
           
    //se si stanno aggiornano
           
    if (isset($_FILES['modifica']))
           {
            
    //creo un array
            
    $array array_combine($id$_FILES['modifica']['tmp_name']);
          
            
    ///faccio un ciclo delle immagini presenti
            
    foreach ($array as $id => $_FILES['modifica']['tmp_name'])
            {       
             if (!empty(
    $_FILES['modifica']['tmp_name']))
             {
              
    // Ottengo le informazioni sull'immagine originale
              
    list($width$height$type$attr) = getimagesize ($_FILES['modifica']['tmp_name']);
              if (
    $type==1$estensione=gif;
              else if (
    $type==2$estensione=jpeg;
              else if (
    $type==3$estensione=png;
              else die (
    '<h1>Errore</h1><br/><h3>Estensione del file non supportata</h3>');
              
              
    //verifico il file
              
    $handle fopen ($_FILES['modifica']['tmp_name'], "r") or die ('<h1>Errore</h1><br/><h3>impossibile aprire il file</h3>');
              
    $image fread ($handlefilesize($_FILES['modifica']['tmp_name'])) or die('<h1>Errore</h1><br/><h3>impossibile leggere il file</h3>');
              
    fclose ($handle);
              
              
    //nuove variabili del file
              
    $nomeimg $id;
              
    $type 'image/'.$estensione;
              
              
    //ridimensiono l'immagine
              
    include'../db/resize2.php';
              
              
    //converto il file
              
    $thumb base64_encode(file_get_contents("$percorsothumb$nomeimg.$estensione"));
              
    $image base64_encode(file_get_contents("$percorsoimg$nomeimg.$estensione"));
             
              
    //..aggiorno il database
              
    $query "UPDATE galleria SET
              titolo = '" 
    $titolo "',
              immagine = '" 
    $image "',
              thumb = '" 
    $thumb "',
              type = '" 
    $type "',
              estensione = '" 
    $estensione "',
              categoria = '" 
    $categoria "'
              WHERE id=
    $id";
              
    $result mysql_query($query);
              if (!
    $result) {die("Errore:" mysql_error());}
              else{
                
    ?>
                <form action="../<?php echo $categoria ?>.php?modifica" method="post">
                <input type="hidden" name="var1" value="entra">
                </form>
                <?php
               
    };
            
             } else {
                
    ?>
                <form action="../<?php echo $categoria ?>.php?modifica" method="post">
                <input type="hidden" name="var1" value="entra">
                </form>
                <?php
               
    };
            };
           } else {
              
    ?>
              <form action="../<?php echo $categoria ?>.php?modifica" method="post">
              <input type="hidden" name="var1" value="entra">
              </form>
              <?php
              
    };
          }; 
            
      
    //se non sto caricando una nuova foto
      
    } else if (empty($_FILES['userFile']['type']))
       {     
        
    //aggiorno tutti i titolo
        
    $array array_combine($id$titolo);
        foreach (
    $array as $id => $titolo)
         {
          if(
    get_magic_quotes_gpc()) {$titolo stripslashes($titolo);}
          
    $titolo mysql_real_escape_string($titolo);
          
    $query "UPDATE galleria SET
          titolo = '"
    $titolo ."'
          WHERE id=
    $id";
          
    $result mysql_query($query);
         }
            
        
    //se si stanno aggiornano le foto
        
    if (isset($_FILES['modifica']))
         { 
          
          
    $array array_combine($newid$_FILES['modifica']['tmp_name']);
          
    ///faccio un ciclo delle immagini presenti
          
    foreach ($array as $newid => $_FILES['modifica']['tmp_name'])
          {       
           if (!empty(
    $_FILES['modifica']['tmp_name']))
           {
            
    // Ottengo le informazioni sull'immagine originale
            
    list($width$height$type$attr) = getimagesize ($_FILES['modifica']['tmp_name']);
            if (
    $type==1$estensione=gif;
            else if (
    $type==2$estensione=jpeg;
            else if (
    $type==3$estensione=png;
            else die (
    '<h1>Errore</h1><br/><h3>Estensione del file non supportata</h3>');
              
            
    //verifico il file
            
    $handle fopen ($_FILES['modifica']['tmp_name'], "r") or die ('<h1>Errore</h1><br/><h3>impossibile aprire il file</h3>');
            
    $image fread ($handlefilesize($_FILES['modifica']['tmp_name'])) or die('<h1>Errore</h1><br/><h3>impossibile leggere il file</h3>');
            
    fclose ($handle);
              
            
    //nuove variabili del file
            
    $nomeimg $newid;
            
    $type 'image/'.$estensione;
              
            
    //ridimensiono l'immagine
            
    include'../db/resize2.php';
              
            
    //converto il file
            
    $thumb base64_encode(file_get_contents("$percorsothumb$nomeimg.$estensione"));
            
    $image base64_encode(file_get_contents("$percorsoimg$nomeimg.$estensione"));
             
            
    //..aggiorno il database
            
    $query "UPDATE galleria SET
            immagine = '" 
    $image "',
            thumb = '" 
    $thumb "',
            type = '" 
    $type "',
            estensione = '" 
    $estensione "',
            categoria = '" 
    $categoria "'
            WHERE id=
    $newid";
            
    $result mysql_query($query);
            if (!
    $result) {die("Errore:" mysql_error());}
            else {
              
    ?>
              <form action="../<?php echo $categoria ?>.php?modifica" method="post">
              <input type="hidden" name="var1" value="entra">
              </form>
              <?php
              
    };
            
           } else {
              
    ?>
              <form action="../<?php echo $categoria ?>.php?modifica" method="post">
              <input type="hidden" name="var1" value="entra">
              </form>
              <?php
             
    };
          };
          
         
         } else  {
            
    ?>
            <form action="../<?php echo $categoria ?>.php?modifica" method="post">
            <input type="hidden" name="var1" value="entra">
            </form>
            <?php
           
    };  
       }; 
      
       
    ?>
    </body>
    </html>


    Codice per il resize

    Codice PHP:

    <?php  
      
      
    //Calcolo dimensioni thumbs
      
    $percent $width $height;
      
    $thumbheight 300;
      
    $thumbwidth $percent $thumbheight;
      
      
    //calcolo dimensioni immagine grande
      
      
    If ($height >=768)
       {
       
    $bigheight 768;
       
    $bigwidth $percent $bigheight
       } else {
         
    $bigheight $height;
         
    $bigwidth $width
         };
         
      
    $thumb imagecreatetruecolor($thumbwidth$thumbheight);
      
    $image imagecreatetruecolor($bigwidth$bigheight);
      
    imagealphablending($thumbfalse);
      
    imagealphablending($imagefalse);
      
    imagesavealpha($thumbtrue);
      
    imagesavealpha($imagetrue);
       
       
    // Creo la versione thumb
       
    if ($estensione==jpeg) {
          
    $source imagecreatefromjpeg ($_FILES['userFile']['tmp_name']);
          
    imagecopyresampled($thumb$source0000$thumbwidth$thumbheight$width$height);
          
    imagecopyresampled($image$source0000$bigwidth$bigheight$width$height);
          
          
    // Salvo l'immagine ridimensionata
          
    imagejpeg($thumb,"$percorsothumb$nomeimg",100);
          
    imagejpeg($image,"$percorsoimg$nomeimg",85);
       
       
       } else if (
    $estensione==png) {
          
    $source imagecreatefrompng ($_FILES['userFile']['tmp_name']);
          
    imagecopyresampled($thumb$source0000$thumbwidth$thumbheight$width$height);
          
    imagecopyresampled($image$source0000$bigwidth$bigheight$width$height);
          
          
    // Salvo l'immagine ridimensionata
          
    imagepng($thumb,"$percorsothumb$nomeimg");
          
    imagepng($image,"$percorsoimg$nomeimg");
          
       } else if (
    $estensione==gif) {
          
    $source imagecreatefromgif ($_FILES['userFile']['tmp_name']);
          
    imagecopyresampled($thumb$source0000$thumbwidth$thumbheight$width$height);
          
    imagecopyresampled($image$source0000$bigwidth$bigheight$width$height);
          
          
    // Salvo l'immagine ridimensionata
          
    imagegif($thumb,"$percorsothumb$nomeimg");
          
    imagegif($image,"$percorsoimg$nomeimg");
       };
       
          
         
    //Svuoto la memoria
         
    ImageDestroy($thumb);
         
    ImageDestroy($source);
         
    ImageDestroy($image);
       
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.