L
Luiser
Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Un saludos a todos los que llegan a leer este apartado, tengo el siguiente problema a la hora de cargar un archivo.
Les explico: Estoy trabajando con postgres+php.. Tengo mi index.php que es donde tengo el formulario para enviar los archivos, dicho formulario lo envio a traves de ajax para finalmente procesarlo con php..Pero me arroja el siguiente error.
Error: " Notice: Undefined index: nombre in /var/www/unidad_proyectos/administrador/php/cargarImagen.php on line 6
Notice: Undefined index: imagen in /var/www/unidad_proyectos/administrador/php/cargarImagen.php on line 21
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23502]: Not null violation: 7 ERROR: el valor null para la columna «usuario_id» viola la restricción not null DETAIL: La fila que falla contiene (1, null, , null, null).' in /var/www/unidad_proyectos/administrador/php/cargarImagen.php:30 Stack trace: #0 /var/www/unidad_proyectos/administrador/php/cargarImagen.php(30): PDOStatement->execute() #1 {main} thrown in /var/www/unidad_proyectos/administrador/php/cargarImagen.php on line 30 "
La codificacion es la siguiente
FORMULARIO
<form id="formulario" class="form-horizontal" enctype="multipart/form-data" action>
<div class="form-group">
<label class="control-label col-xs-3">Nombre</label>
<input id="nombre" type="text" required>
</div>
<div class="form-group">
<label class="control-label col-xs-3">Subir archivo:</label>
<div class="col-xs-9">
<input id="archivoProducto" type="file" required>
</div>
</div>
<br>
<div class="form-group">
<div class="col-xs-offset-3 col-xs-9">
<input type="submit" class="btn btn-primary" value="Enviar">
<input type="reset" class="btn btn-default" value="Limpiar">
</div>
</div>
</form>
JS
$('#formulario').submit(function ( e ) {
var data = new FormData(this);
$.ajax({
url: '../php/cargarImagen.php',
data: data,
processData: false,
contentType: false,
type: 'POST',
success: function (resultado) {
alert(resultado);
}
});
e.preventDefault();
});
PHP
<?php
require_once("validarAdmin.php");
require_once "conexionDB.php";
$nombre = $_POST["nombre"];
$target_dir = $_SERVER['DOCUMENT_ROOT'].'/img/galerias/';
$target_file = $target_dir . basename($_FILES["imagen"]["name"]);
$fileType = pathinfo($target_file,PATHINFO_EXTENSION);
$stmt = $conn->prepare("INSERT INTO galerias VALUES(1, :nombre, :imagen)");
$stmt->bindParam(":nombre", $nombre);
$stmt->bindParam(":imagen", $fileType);
$conn->beginTransaction();
$stmt->execute();
$id_galeria = $conn->lastInsertId();
$conn->commit();
// Mover imagen
$fileName = 'imagen'.str_pad($id_galeria, 5, "0", STR_PAD_LEFT).".$fileType";
$file_and_dir = $target_dir.$fileName;
// Limitar tipo
if($fileType != "jpg") {
#errores('Ingrese un anexo con formato jpg');
}
if (file_exists($file_and_dir)){
$temp_file = $target_dir.strimageneplace('.jpg', '_t.jpg', $fileName);
rename($file_and_dir, $temp_file);
}
// Intentar mover archivo
if (move_uploaded_file($_FILES["imagen"]["tmp_name"], $target_dir.$fileName)) {
if (isset($temp_file) && file_exists($temp_file)){
unlink($temp_file);
$an = $fileName;
}
}
else {
$temp_restore = str_replace('_t.jpg', 't.jpg', $temp_file);
rename($file_and_dir, $temp_file);
errores('Problema al subir la imagen');
}
$response["estatus"] = "1";
$response["mensaje"] = "Producto cargado exitosamente";
die(json_encode($response));
No he dado con la solucion, si alguien tiene alguna sugerencia, es aceptada
Les explico: Estoy trabajando con postgres+php.. Tengo mi index.php que es donde tengo el formulario para enviar los archivos, dicho formulario lo envio a traves de ajax para finalmente procesarlo con php..Pero me arroja el siguiente error.
Error: " Notice: Undefined index: nombre in /var/www/unidad_proyectos/administrador/php/cargarImagen.php on line 6
Notice: Undefined index: imagen in /var/www/unidad_proyectos/administrador/php/cargarImagen.php on line 21
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23502]: Not null violation: 7 ERROR: el valor null para la columna «usuario_id» viola la restricción not null DETAIL: La fila que falla contiene (1, null, , null, null).' in /var/www/unidad_proyectos/administrador/php/cargarImagen.php:30 Stack trace: #0 /var/www/unidad_proyectos/administrador/php/cargarImagen.php(30): PDOStatement->execute() #1 {main} thrown in /var/www/unidad_proyectos/administrador/php/cargarImagen.php on line 30 "
La codificacion es la siguiente
FORMULARIO
<form id="formulario" class="form-horizontal" enctype="multipart/form-data" action>
<div class="form-group">
<label class="control-label col-xs-3">Nombre</label>
<input id="nombre" type="text" required>
</div>
<div class="form-group">
<label class="control-label col-xs-3">Subir archivo:</label>
<div class="col-xs-9">
<input id="archivoProducto" type="file" required>
</div>
</div>
<br>
<div class="form-group">
<div class="col-xs-offset-3 col-xs-9">
<input type="submit" class="btn btn-primary" value="Enviar">
<input type="reset" class="btn btn-default" value="Limpiar">
</div>
</div>
</form>
JS
$('#formulario').submit(function ( e ) {
var data = new FormData(this);
$.ajax({
url: '../php/cargarImagen.php',
data: data,
processData: false,
contentType: false,
type: 'POST',
success: function (resultado) {
alert(resultado);
}
});
e.preventDefault();
});
PHP
<?php
require_once("validarAdmin.php");
require_once "conexionDB.php";
$nombre = $_POST["nombre"];
$target_dir = $_SERVER['DOCUMENT_ROOT'].'/img/galerias/';
$target_file = $target_dir . basename($_FILES["imagen"]["name"]);
$fileType = pathinfo($target_file,PATHINFO_EXTENSION);
$stmt = $conn->prepare("INSERT INTO galerias VALUES(1, :nombre, :imagen)");
$stmt->bindParam(":nombre", $nombre);
$stmt->bindParam(":imagen", $fileType);
$conn->beginTransaction();
$stmt->execute();
$id_galeria = $conn->lastInsertId();
$conn->commit();
// Mover imagen
$fileName = 'imagen'.str_pad($id_galeria, 5, "0", STR_PAD_LEFT).".$fileType";
$file_and_dir = $target_dir.$fileName;
// Limitar tipo
if($fileType != "jpg") {
#errores('Ingrese un anexo con formato jpg');
}
if (file_exists($file_and_dir)){
$temp_file = $target_dir.strimageneplace('.jpg', '_t.jpg', $fileName);
rename($file_and_dir, $temp_file);
}
// Intentar mover archivo
if (move_uploaded_file($_FILES["imagen"]["tmp_name"], $target_dir.$fileName)) {
if (isset($temp_file) && file_exists($temp_file)){
unlink($temp_file);
$an = $fileName;
}
}
else {
$temp_restore = str_replace('_t.jpg', 't.jpg', $temp_file);
rename($file_and_dir, $temp_file);
errores('Problema al subir la imagen');
}
$response["estatus"] = "1";
$response["mensaje"] = "Producto cargado exitosamente";
die(json_encode($response));
No he dado con la solucion, si alguien tiene alguna sugerencia, es aceptada