php salvare file in campo blob mysql: massimo 4MB

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
44
Ciao a tutti sto utilizzando la libreria dropzone.js con tema bootstrap per salvare dei file con qualsiasi estensione in un db mysql questo il mio codice html:

HTML:
            <div id="container1" class="container" style="width:1270px; border: 4px ridge rgb(93,123,146); border-radius: 10px 10px 10px 10px;">
             <form action="uploadFile.php"  id="dropzone1">   
               <h3 style="margin-top: 8px">Capitolati tecnici</h3>         
               <div class="table table-striped files" id="previews1">
                 <div id="template1" class="file-row dz-image-preview">
                   <div>
                     <span class="preview"><img data-dz-thumbnail></span>
                   </div>
                   <div>
                     <p class="name" data-dz-name style="margin-top:2px !important; margin-bottom:2px !important"></p>
                     <strong class="error text-danger" data-dz-errormessage></strong>
                   </div>
                   <div>
                     <p class="size" data-dz-size style="margin-top:2px !important; margin-bottom:2px !important"></p>
                     <div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" style="margin-bottom:3px">
                       <div class="progress-bar progress-bar-success" style="width:0%;" data-dz-uploadprogress></div>
                     </div>
                   </div>
                   <div>
                     <button data-dz-remove class="btn btn-danger delete">
                       <i class="glyphicon glyphicon-trash"></i>
                       <span>Cancella</span>
                     </button>
                    </div>
                 </div>
               </div>         
               <div id="actions1" class="row">
                 <div class="col-lg-7" style="margin-bottom:8px">
                   <span class="btn btn-success fileinput-button1 dz-clickable">
                       <i class="glyphicon glyphicon-plus"></i>
                       <span>Aggiungi file</span>
                   </span>
                 </div>     
               </div>
             </form>               
             </div>

Leggendo la documentazione ho implementato il seguente script:

HTML:
               var previewNode1 = document.querySelector("#template1");
               previewNode1.id = "";
               var previewTemplate1 = previewNode1.parentNode.innerHTML;
               previewNode1.parentNode.removeChild(previewNode1);

               var myDropzone1 = new Dropzone("#container1", {url: "uploadFile.php",
                                                              maxFilesize: 50,
                                                              thumbnailWidth: 40,
                                                              thumbnailHeight: 40,
                                                              parallelUploads: 20,
                                                              previewTemplate: previewTemplate1,
                                                              autoQueue: true,
                                                              previewsContainer: "#previews1",
                                                              clickable: ".fileinput-button1"
                                                             });

Posto che non ho capito perchè necessata del parametro url visto che poi è l'action della form che chiama uploadFile.php comunque sia che seleziono un file che molti il php viene chiamato per tutti:

PHP:
include('session.php');

$nome = $_FILES['file']['name'];
$tipo = pathinfo($nome, PATHINFO_EXTENSION);
$dati = addslashes(file_get_contents($_FILES['file']['tmp_name']));
$insuser = mysqli_real_escape_string($connection, $_SESSION['login_name']);
$insdate = date('Y-m-d H:i:s');
 
$sql = "insert into documenti (nome, tipo, dati, insuser, insdate) values ('$nome', '$tipo', '{$dati}', '$insuser', '$insdate')";
if (!mysqli_query($connection, $sql)) {die('Errore inserimento documento: ' . mysqli_error($connection));}
 
mysqli_close($connection);

In ogni caso non sto trattando un "upload" ma sto direttamente salvando il content del file nel db...inizialmente potevo farlo per un max di 2MB, poi vedendo la configurazione del file php.ini ho provato ad aumentare un po' di tutto dove parlava di MB o di byte portando tutto da 64 a 512MB ogni voce e il massimo risultato che ho ottenuto è un file di max 4MB. E comunque dubito che servano parametri di upload, penso più a buffer o post

Ne approfitto per capire il funzionamento: se trascino 3 file vengono salvati direttamente nel DB quindi la post esegue 3 distinte chiamate al mio php?
Per sapere se ha funzionato posso solo fare una query sul db, il die viene bellamente ignorato, mentre se lo uso nelle chiamate ajax funziona sempre e con la stessa sintassi. Dove sbaglio?
In genere con le chiamate ajax posso pilotare un ritorno ma in questo caso non saprei proprio come fare per ad esempio visualizzare un errore con una modal, certo il die basta e avanza perchè è comunque un errore grave quindi accettabile che l'applicazione abortisca.

Dimenticavo sto utilizzando EasyPHP Devserver con php 5
 

marlev

Utente Attivo
19 Apr 2018
80
1
6
marlev.it
Ciao, prova ad aumentare max_allowed_packet di mysql e vedi che in php,ini MB e' riportato anche come M quindi controlla anche post_max_size
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Salvare campo di una tabella in una variabile PHP 14
M [PHP] FPDF Salvare su disco C locale Windows PHP 3
L [PHP] Salvare csv da form dati PHP 5
G [PHP] SALVARE RECORD ESTRATTI DA DATABASE PHP 6
D Come salvare scelta della select "dinamica" ajax-php? Come dato php o attributo value tag option? Ajax 5
M Salvare i dati nel db e aprire altra pagina php PHP 7
V [PHP] Salvare campo radio in db e leggerlo PHP 15
S [PHP] Salvare dati tabella in formato exel PHP 0
C Salvare immagini da php in automatico PHP 2
M Visulizzare immagine con php PHP 4
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2

Discussioni simili