Error uploading image. php jquery only saves the path but not the image in a local folder

0

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>
    
asked by Salvador Fernandez 29.08.2017 в 20:37
source

1 answer

0

The problem was in the BASEURL in the line of $ uploadPath = BASEURL. '/ images / products /'.$ uploadName; products was too much. BASEURL was a shortpath for "C: / xampp / htdocs / tecnliv /". thanks.

    
answered by 29.08.2017 в 22:17