Obtendo a imagem do usuário
Consulte http://php.net/manual/en/reserved.variables. arquivos.php e http://php.net/manual/en/features.file- upload.php e amigos pelos dados de como usar
$_FILES
para receber o upload. Depois de ter a imagem em uma variável, diga
$jpg
, não use nenhuma função de codificação/decodificação de texto; ele só vai destroçar as coisas. As diferentes abordagens abaixo dirão o que fazer para evitar tropeçar em códigos de 8 bits. Existem três maneiras de apresentar a imagem, cada uma um pouco complexa
Armazenando a imagem no banco de dados; mostrando imagem em linha
Eu usei essa abordagem para miniaturas, mas não recomendo para imagens grandes.
Armazene-o em um
MEDIUMBLOB
em uma tabela, use bin2hex()
em PHP para transformar a imagem em uma string. Em seguida, use INSERT ... VALUES (UNHEX('...'))
para voltar para binário no lado do servidor MySQL. Após recarregar, faça com que o PHP de referência diga algo como
$b64 = base64_encode($blob);
echo "<img src='data:image/jpeg;base64,$b64'/>";
Armazenando a imagem no banco de dados; Script PHP para gerar imagem
Eu uso isso quando quero usar as funções "image*" do PHP para modificar a imagem antes de exibi-la. Uma vez que isso é mais complicado do que você provavelmente precisa, vou apenas dar uma olhada no que precisa ser feito.
O html da página invocaria outro script, com os argumentos que você precisa:
<img src=modify.php?this=stuff&that=stuff>
Então em
modify.php
, começar com header('Content-type: image/jpeg');
E termine com isso (supondo que você esteja construindo um JPEG):
imagejpeg($im);
Armazenando a imagem em um arquivo
Esta é a maneira preferida que a maioria dos grandes sites fazem isso na maioria das vezes.
Se o seu arquivo vier de um upload, algo assim o moverá para um caminho melhor sem precisar tocar no jpg.
$tmpfile = $_FILES['userfile']['tmp_name'];
move_uploaded_file($tmpfile, $uploadfile);
Mais informações e exemplos:http://php.net/manual/ pt/function.move-uploaded-file.php
No HTML, basta gerar algo assim:
<img src=path/to/file>
Faça uma pesquisa sobre onde no caminho do seu servidor você pode colocar imagens e verifique se as permissões são adequadas.
Nota:O banco de dados não está envolvido em manter a imagem, em vez disso, possui uma coluna para armazenar a url
"path/to/file"
:image VARCHAR(255) NOT NULL
Para mais discussões
- Em qual das três técnicas você gostaria de se aprofundar?
- Vamos ver o HTML que você está gerando.
- Vamos ver
SHOW CREATE TABLE
.