es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enviar un archivo cargado a un campo de tipo imagen al servidor SQL en Laravel PHP.

Mi pregunta es cómo enviar un archivo a un campo de tipo imagen desde Laravel a SQL Server?

$file = ruta_del_archivo;
$image = file_get_contents($file);
$sql = “INSERT INTO tabla (CONTENIDO) VALUES (?);”;
$params = array(array($image, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY)));

De esta manera solo puedo insertar varbinary y lo que necesito es que se inserte en el tipo imagen.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para insertar un archivo en un campo de tipo imagen en SQL Server desde Laravel, puede usar el siguiente código:

    $image = file_get_contents($file);
    
    $connectionInfo = array(
        "Database" => "nombre_de_tu_base_de_datos",
        "UID" => "tu_usuario",
        "PWD" => "tu_contraseña",
        "CharacterSet" => "UTF-8"
    );
    
    $conn = sqlsrv_connect("nombre_de_tu_servidor", $connectionInfo);
    
    $sql = "INSERT INTO tabla (CONTENIDO) VALUES (?)";
    
    $params = array(
        array($image, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY), SQLSRV_SQLTYPE_VARBINARY('max'))
    );
    
    $stmt = sqlsrv_prepare($conn, $sql, $params);
    
    if (!$stmt) {
        echo "Error preparando la consulta";
        exit();
    }
    
    if (!sqlsrv_execute($stmt)) {
        echo "Error ejecutando la consulta";
        exit();
    }
    
    sqlsrv_free_stmt($stmt);
    sqlsrv_close($conn);
    

    En este código, primero obtenemos el contenido del archivo utilizando la función file_get_contents ().

    A continuación, creamos una conexión al servidor de SQL usando la función sqlsrv_connect() y definimos los parámetros de conexión.

    Luego, establecemos la instrucción SQL para insertar el contenido del archivo en el campo “CONTENIDO” de la tabla “tabla”.

    Definimos los parámetros para la instrucción SQL como un array, siendo el primer elemento el contenido del archivo, seguido por el tipo de datos, el tipo de datos de PHP y el tipo de datos de SQL.

    A continuación, preparamos la instrucción SQL usando la función sqlsrv_prepare() y pasamos la conexión, la instrucción SQL y los parámetros.

    Verificamos si la instrucción se preparó correctamente y, de ser así, la ejecutamos usando la función sqlsrv_execute().

    Finalmente, liberamos la instrucción y cerramos la conexión usando las funciones sqlsrv_free_stmt() y sqlsrv_close() respectivamente.

    Usando el código anterior, debería poder insertar un archivo en un campo de tipo imagen en SQL Server desde Laravel usando PHP.

Comments are closed.