The problem I have is that it uploads all the data to db but the image does not save it in the local folder. just the route in the db. Use phpmyadmin.
if($_POST){
$nombre = sanitize($_POST['nombre']);
$marca = sanitize($_POST['marca']);
$categoria = sanitize($_POST['child']);
$precio = sanitize($_POST['precio']);
$lista_precios = sanitize($_POST['lista_precios']);
$sizes = sanitize($_POST['sizes']);
$descripcion = sanitize($_POST['descripcion']);
$codigoproducto = sanitize($_POST['codigoproducto']);
$dbpath= '';
$errors= array();
if(!empty($_POST['sizes'])){
$sizeString = sanitize($_POST['sizes']);
$sizeString = rtrim($sizeString,',');
$sizesArray = explode(',',$sizeString);
$sArray = array();
$qArray = array();
foreach($sizesArray as $ss){
$s = explode(':',$ss);
$sArray[] = $s[0];
$qArray = $s[1];
}
}else{$sizesArray = array();}
$required = array('nombre','precio','marca','sizes','codigoproducto','padre','child');
foreach($required as $field){
if($_POST[$field] == ''){
$errors[] = 'Todos los campos con * son requeridos.';
break;
}
}
$photo = $_FILES['photo'];
if($photo['name']!='' && $photo['type']!='') {
//var_dump($_FILES);
$photo = $_FILES['photo'];
// var_dump($photo);
$name = $photo['name'];
//var_dump($name);
$nameArray = explode('.', $name);
$fileName = $nameArray[0];
$fileExt = $nameArray[1];
$mime = explode('/', $photo['type']);
$mimeType = $mime[0];
$mimeExt = $mime[1];
$tmpLoc = $photo['tmp_name'];
$fileSize = $photo['size'];
$allowed = array('png', 'jpg', 'jpeg', 'gif');
$uploadName = md5(microtime()).'.'.$fileExt;
$uploadPath = BASEURL.'/images/productos/'.$uploadName;
$dbpath = '/tecnliv/images/'.$uploadName;
if($mimeType != 'image'){
$errors[] = 'El archivo debe ser una imagen.';
}
if(!in_array($fileExt, $allowed)){
$errors[] = 'La extension de la imagen debe ser jpg, png o gif.';
}
if($fileSize > 5000000){
$errors[] = 'El archivo debe ser menor a 5mb.';
}
if($fileSize != $mimeExt && ($mimeExt == 'jpeg' && $fileExt != 'jpg')){
$errors[] = 'La extension del archivo no concuerda';
}
}
if(!empty($errors)){
echo display_errors($errors);
}else{
//actulizar la base de datos
move_uploaded_file($tmpLoc,$uploadPath);
$insertSql ="INSERT INTO 'productos' ('nombre','precio','lista_precios','marca','categoria','image','descripcion','featured','sizes','codigoproducto','borrado')
VALUES ('$nombre','$precio','$lista_precios','$marca','$categoria','$dbpath','$descripcion','0','$sizes','$codigoproducto','0')";
$db->query($insertSql);
header("Location: productos.php");
}
}
Form
<form action="productos.php?add=1" method="POST" enctype="multipart/form-data">
<div class="form-group col-md-3">
<label for="nombre">Nombre*:</label>
<input type="text" name="nombre" class="form-control" id="nombre" value="<?=((isset($_POST['nombre']))?sanitize($_POST['nombre']):''); ?>">
</div>
<div class="form-group col-md-3">
<label form="marca">Marca*:</label>
<select class="form-control" id="marca" name="marca">
<option value=""<?=((isset($_POST['marca']) && $_POST['marca'] == '')?' selected':''); ?>></option>
<?php while($marca = mysqli_fetch_assoc($marcaQuery)): ?>
<option value="<?=$marca['id'];?>"<?=((isset($_POST['marca']) && $_POST['marca'] == $marca['id'])?' selected':'');?>><?=$marca['marca'];?></option>
<?php endwhile; ?>
</select>
</div>
<div class="form-group col-md-3">
<label for="padre">Categoria Padre*:</label>
<select class="form-control" id="padre" name="padre">
<option value""<?=((isset($_POST['padre']) && $_POST['padre'] == '')?' selected':'') ?>></option>
<?php while($padre = mysqli_fetch_assoc($padreQuery)): ?>
<option value="<?=$padre['id'];?>"<?=((isset($_POST['padre']) && $_POST['padre'] == $padre['id'])?' selected':''); ?>><?=$padre['nombre']; ?></option>
<?php endwhile; ?>
</select>
</div>
<div class="form-group col-md-3">
<label for="child"> Categorias child*:</label>
<select id="child" name="child" class="form-control"></select>
</div>
<div class="form-group col-md-3">
<label for="precio">Precio*:</label>
<input type="text" id="precio" name="precio" class="form-control" value="<?=((isset($_POST['precio']))?sanitize($_POST['precio']):''); ?>">
</div>
<div class="form-group col-md-3">
<label for="lista_precios">Precio de lista*:</label>
<input type="text" id="lista_precios" name="lista_precios" class="form-control" value="<?=((isset($_POST['lista_precios']))?sanitize($_POST['lista_precios']):''); ?>">
</div>
<div class="form-group col-md-3">
<label for="codigoproducto">Codigo de producto*:</label>
<input type="text" id="codigoproducto" name="codigoproducto" class="form-control" value="<?=((isset($_POST['codigoproducto']))?sanitize($_POST['codigoproducto']):''); ?>">
</div>
<div class="form-group col-md-3">
<label> Cantidades</label>
<button class="btn btn-default form-control" onclick="jQuery('#sizesModal').modal('toggle');return false;">cantidades</button>
</div>
<div class"form-group col-md-3">
<label for"sizes">Cantidades preview</label>
<input type="text" class="form-control" name="sizes" id="sizes" value="<?=((isset($_POST['sizes']))?$_POST['sizes']:''); ?>" readonly>
</div>
<div class="form-group col-md-6">
<label for"photo"> Foto del producto</label>
<input type="file" name="photo" id="photo" class="form-control">
</div>
<div class="form-group col-md-6">
<label for="descripcion">Detalles</label>
<textarea class="form-control" rows="6" id="descripcion" name="descripcion"><?=((isset($_POST['descripcion']))?$_POST['descripcion']:'');?></textarea>
</div>
<div class="form-group pull-right">
<input type="submit" value="Añadir Producto" class="form-control btn btn-success">
</div><div class="clearfix"></div>
</form>