[RESOLVIDO] Bd

Glr, é o seguinte, sei que geralmente o pessoal fala que não é bom usar banco de dados pra salvar uma imagem, seria melhor salvar só o dir do arquivo, mas mesmo assim gostaria de pelo menos conseguir fazer dar certo, tipo, eu conseguir salvar a imagem no Banco de Dados, mas não consigo visualizar a imagem, quando eu pego a imagem do banco ele volta como uma sequencia de caracteres que deve ser a criptografia. Então sempre fico em 2 resultados ou fica aquele icone de imagem não carregada ou ele printa a série de caracteres.

Esse ta sendo o esquema pra fazer o upload da imagem:

public function uploadImage($software_name,$software_version,$file_name,$file_tmp,$file_type) {
global $pdo;
//antes de ler o conteudo do arquivo você pode fazer upload para compactar em .ZIP ou .RAR, no caso de imagem você poderá redimensionar o tamanho antes de gravar no banco. Claro que depende da sua necessidade.

	//Para fazer UPLOAD poderá usar COPY ou MOVE_UPLOADED_FILE
	copy($file_tmp, "C:/wamp64/www/TLoginV1cb/imagens/$file_name");
	//move_uploaded_file($file_tmp,"caminho/pasta/$file_name");
	 
	//lemos o  conteudo do arquivo usando afunção do PHP  file_get_contents
	$binario = file_get_contents($file_tmp);
	// evitamos erro de sintaxe do MySQL
	$binario = addslashes($binario);
	//$binario = base64_encode($binario);
	//montamos o SQL para envio dos dados
	$sql = $pdo->prepare("INSERT INTO softwares (nome, versao, nome_logo, logo, type_logo)
	VALUES (:sn, :sv, :fn, :b, :tl)");
	//executamos a instução SQL
	$sql->bindValue(":sn",$software_name);
	$sql->bindValue(":sv",$software_version);
	$sql->bindValue(":fn",$file_name);
	$sql->bindValue(":b",$binario);
	$sql->bindValue(":tl",$file_type);
	$sql->execute();
}

no html ta assim (e sim, to fazendo o html dentro do php, queria muito fazer cada dentro do seu arquivo certo mas por certos problemas e falta de tempo, teve que ficar assim):

$lista = "";
$softwaresList = $u->getList();
if($softwaresList != null) {
	foreach($softwaresList as $software) {
		if($software['nome'] != "logo_default")
		$lista = $lista . "<tr>
		  <th scope='row'>
			<img src=' . data:" . $software['type_logo'] . ";base64," . stripslashes($software['logo']) . "' class='img-fluid' width='30px' height='30px' alt='Imagem responsiva'>
		  </th>
		  <td>" . $software['nome'] . "</td>
		  <td>" . $software['versao'] . "</td>
		</tr>";
	}
}

echo $lista;

Provavelmente seja o binário da imagem, jovem.

Está fazendo isso seguindo qual apostila/livro/tutorial?

bem, eu fiz seguindo o códigos que outros postaram que eram simples de entender, então dificil te dizer já que eu só pesquisei e deixei o site de lado, quando conseguir fazer o upload da imagem ja tava com muita dor de cabeça, além disso agr o problema é o download da imagem que não ta funcionando, a imagem ta vindo em binário como vc disse, eu só preciso fazer esse imagem aparecer corretamente

Sabe qual o problema em fazer isso? Provavelmente estão faltando partes fundamentais.
Cara, sempre tem tutoriais, apostilas, livros, vídeos no youtube (de grátis) mostrando o passo a passo certinho.
Seria bom dar uma pesquisada nisso, num material completo.

consegui não tinha tutorial ensinando só usando o header('Content-type: ’ blablabla) e ai abre uma guia com o echo (objeto com a imagem do banco)

mas ai eu fiz uns testes e vi que isso funciona perfeitamente

onde será exibido:

$lista = "";
$softwaresList = $u->getList();
if($softwaresList != null) {
	foreach($softwaresList as $software) {
		if($software['nome'] != "logo_default")
		$lista = $lista . "<tr>
		  <th scope='row'>
			<img src='  data:" . $software['type_logo'] . ";base64," . base64_encode($software['logo']) . "' class='img-fluid' width='70px' height='70px' alt='Imagem responsiva'>
		  </th>
		  <td>" . $software['nome'] . "</td>
		  <td>" . $software['versao'] . "</td>
		</tr>";
	}
}

echo $lista;

e o código que armazena a imagem:

public function uploadImage($software_name,$software_version,$file_name,$file_tmp,$file_type) {
		global $pdo;
	
		//Para fazer UPLOAD poderá usar COPY ou MOVE_UPLOADED_FILE
		copy($file_tmp, "C:/wamp64/www/TLoginV1cb/imagens/$file_name");
		
		$binario = file_get_contents($file_tmp);
		
		//montamos o SQL para envio dos dados
		$sql = $pdo->prepare("INSERT INTO softwares (nome, versao, nome_logo, logo, type_logo)
		VALUES (:sn, :sv, :fn, :b, :tl)");
		//executamos a instução SQL
		$sql->bindValue(":sn",$software_name);
		$sql->bindValue(":sv",$software_version);
		$sql->bindValue(":fn",$file_name);
		$sql->bindValue(":b",$binario);
		$sql->bindValue(":tl",$file_type);
		$sql->execute();
	}