Este codigo yo lo veo lógico, pero no funciona el update cuando sube la imagen (o las imagenes)
Funciona todo menos eso
Código HTML:
<form action="test.php?miSelect=<?php echo $selected_val?>" method="post" enctype="multipart/form-data"> <label for="archivo">Archivo:</label> <input type="file" name="archivo[]" multiple id="archivo" /> <br/> <input type="submit" value="Enviar" /> </form>
Código PHP:
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$files = $_FILES['archivo']['name'];
$upload = new Multiupload();
$isUpload = $upload->upFiles($files, $campoElejido, $FotIdi);
}else{
}
class Multiupload {
public function upFiles($files = array(), $campoElejido, $FotIdi) {
$i = 0;
foreach($files as $file) {
if($_FILES['archivo']['tmp_name'][$i]) {
$selected_val= $_GET["miSelect"];
$varPathImagen = "images/autos/" .$selected_val ."/";
$trozos[$i] = explode(".", $_FILES["archivo"]["name"][$i]);
$extension[$i] = end($trozos[$i]);
if($this->checkExtension($extension[$i]) === TRUE) {
$_FILES['archivo']['name'][$i] = $this->checkExists($trozos[$i]);
if(move_uploaded_file($_FILES['archivo']['tmp_name'][$i], $varPathImagen .$_FILES['archivo']['name'][$i])) {
$updata = ".." ."/" ."$varPathImagen" .$_FILES['archivo']['name'][$i];
echo "Exito!";
//Actualizamos datos en registro EXITSTEN, agregando la direecion de una foto
$paso = "UPDATE tblfoto SET $campoElejido = '$updata' WHERE FotId = $FotIdi";
$stmtmm = $mysqli->prepare ($paso);
$stmtmm->execute();
}
}else{
echo "la extension no esta permitida";
}
}else{
echo "sin imagen";
}
echo "<br />";
$i++;
}
}
private function checkExtension($extension)
{
$extensiones = array("jpg","png","gif","pdf");
if(in_array(strtolower($extension), $extensiones))
{
return TRUE;
}else{
return FALSE;
}
}
private function checkExists($file)
{
$archivo = $file[0] . '.' . end($file);
$i = 0;
while(file_exists('files/'.$archivo))
{
$i++;
$archivo = $file[0]."(".$i.")".".".end($file);
}
return $archivo;
}
};
(y el $FotIdi es la fila donde se tiene que guardar)
$varPathImagen es la ruta de la foto (y el $updata la ruta más el nombre
Cuando hago un echo de $updata aparece bien:
UPDATE tblfoto SET FotUrl2 = '../images/autos/199/FotoPrueba.jpg' WHERE FotId = 445
La conexión la hace bien, por que probe poner
Código PHP:
if ($mysqli->connect_errno) {
echo "Fallo la conexion a la base de datos";
die('Connect Error: ' . $mysqli->connect_errno);
exit;
}
Cuando hago la subida salta Fatal error: Call to a member function prepare() on a non-object in /public_html/PreProduccion/test.php on line 463
(es la linea $stmtmm = $mysqli->prepare ($paso); )
Alguien tiene idea de lo que puede estar pasando?
Ayuda!