D. api / producto-agrega.php

1
<?php
2
3
require_once __DIR__ . "/../libservidorphp/manejaErrores.php";
4
require_once __DIR__ . "/../libservidorphp/recibeTextoObligatorio.php";
5
require_once __DIR__ . "/../libservidorphp/recibeBytesObligatorios.php";
6
require_once __DIR__ . "/../libservidorphp/devuelveCreated.php";
7
require_once __DIR__ . "/Bd.php";
8
require_once __DIR__ . "/archivoAgrega.php";
9
10
$nombre = recibeTextoObligatorio("nombre");
11
$bytes = recibeBytesObligatorios("imagen");
12
13
$bd = Bd::conexion();
14
$bd->beginTransaction();
15
16
$archId = archivoAgrega($bd, $bytes);
17
18
$stmt = $bd->prepare(
19
 "INSERT INTO PRODUCTO (
20
    PRD_NOMBRE, PRD_ARCH_ID
21
   ) values (
22
    TRIM(:PRD_NOMBRE), :PRD_ARCH_ID
23
   )"
24
);
25
$stmt->execute([
26
 ":PRD_NOMBRE" => $nombre,
27
 ":PRD_ARCH_ID" => $archId
28
]);
29
$prodId = $bd->lastInsertId();
30
31
$bd->commit();
32
33
$query = http_build_query(["id" => $prodId]);
34
$queryArch = http_build_query(["id" => $archId]);
35
// Los bytes de las imágenes se descargan con "archivo.php"; no desde aquí.
36
devuelveCreated("/api/producto-vista-modifica.php?$query", [
37
 "id" => ["value" => $prodId],
38
 "nombre" => ["value" => $nombre],
39
 "imagen" => ["data-src" => $archId === "" ? "" : "api/archivo.php?$queryArch"]
40
]);
41
skip_previous skip_next