php salvare file in campo blob mysql: massimo 4MB

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
43
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
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
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
L Google chart php mysql PHP 2
R Download file multipli da directory php PHP 0
F pagina dinamica PHP PHP 3
P Rimozione automatica url da sitemap.xml con PHP PHP 1
L php tinymce mi duplica la classe label PHP 3
S Errore PHP - Notice: Undefined index ... PHP 14
N file manager da php 5 a 7 PHP 15
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
N Mysql_result per PHP 7 PHP 2
Emix Select concatenate php sql ajax PHP 2
P Modifica con PHP di un node in una sitemap xml PHP 0
D Come usare funzione php PHP 6
P Cancellazione specifici files in una folder php PHP 1
R Tradurre stringhe con php e google translator PHP 4
I Salvataggio snapshot IPCAM tramite PHP PHP 5
felino PHP e script generazione file excel PHP 2
L Aiuto per programma web php/mySQL PHP 2

Discussioni simili