carica più file pdo

come caricare più file nel database con questo script voglio anche rendere il file di input e il database non richiesti

Cosa ne pensi? Lo script è protetto?

Ecco il mio script php pdo:

$file = $_FILES['file']; $fileName = $_FILES['file']['name']; $fileTmpName = $_FILES['file']['tmp_name']; $fileSize = $_FILES['file']['size']; $fileError = $_FILES['file']['error']; $fileType = $_FILES['file']['type']; $fileExt = explode('.', $fileName); $fileActualExt = strtolower(end($fileExt)); $allowed = arrays('jpg', 'jpeg', 'png', 'pdf'); $formErrors = arrays(); if (in_arrays($fileActualExt, $allowed)) { if ($fileError === 0) { if ($fileSize < 1000000) { $fileNameNew = uniqid('', true).".".$fileActualExt; $fileDestination = 'images/' .$fileNameNew; move_uploaded_file($fileTmpName, $fileDestination); } else { $formErrors[] = "file size must be under 2mb"; } } else { $formErrors[] = 'error'; } } else { $formErrors[] 'file not uploaded..!'; } 

Ecco l'html:

  <tr> <td><label class="control-label">Profile Img.</label></td> <td><input class="input-group" type="file" name="file" multiple accept="image/*" /></td> </tr> 

inserire nel database

  if (empty($formErrors)) { $stmz = $con->prepare("INSERT INTO reports(title, username, email, mobile, repdate,photo, descr) VALUE(:ztitle, :zusername, :zemail, :zmobile, NOW(), :uphoto, :zdescr)"); $stmz->execute(arrays( 'ztitle' => $title, 'zusername' => $username, 'zemail' => $email, 'zmobile' => $mobile, 'uphoto' => $fileNameNew, 'zdescr' => $descr )); /* echo "<meta http-equiv='refresh' content='0'>"; */ if ($stmz) { echo '<script language="javascript">'; echo 'alert("your report Added")'; echo '</script>'; echo '<div class="alert alert-danger">your report Added</div>'; } } else { echo '<script language="javascript">'; echo 'alert("your report not Added")'; echo '</script>'; echo '<div class="alert alert-danger">your report not Added</div>'; } 

Quando si caricano più file, è necessario creare un arrays per più file. name = "file []"

Ti suggerisco di usare questa class base per caricare più file.

https://github.com/AzCreativeWorld/Dropzone-with-Image-Resizer

Tyr in questo modo per il caricamento multiplo.

 foreach($_FILES['files']['name'] as $val) { $s++; $filesName = str_replace(" ","",trim($_FILES['files']['name'][$n])); $files = explode(".",$filesName); $File_Ext = substr($_FILES['files']['name'][$n], strrpos($_FILES['files']['name'][$n],'.')); if($File_Ext==".png" || $File_Ext==".jpeg" || $File_Ext==".gif" || $File_Ext==".jpg") { $srcPath = 'uploads/'; // your DIR name $path = trim($srcPath.$fileName); move_uploaded_file($_FILES['files']['tmp_name'][$n], $path) { // insertion query here success }else{ // file not move to the destination } } else { //extention not valid } $n++; } 

Questo script qui https://github.com/e-ht/cautious-rotary-phone mostra la procedura completa di caricamento e di logging del database per più file. Usa PHP7, JS / AJAX e MySQL.

Ecco uno snippet JS della gestione del module di caricamento di più file:

  // Support for sending multiple files for (var i = 0; i < files.length; i++) { var file = files[i]; formData.append('files', file, file.name); }