Tenho um .php hospedado junto ao nosso site e gostaria de nele passar pela URL além de informações para serem gravadas no banco, uma imagem. Algo assim:
www.site.com.br/cadastra_produto.php?descricao=MOUSE&foto=c:\foto_mouse.png
Para que eu consiga lançar um cadastro novo a partir de qualquer lugar: um programa desktop, um dispositivo móvel e dentro deste arquivo, fazer algo assim:
<?php
$descricao = $_POST['descricao'];
$foto = $_FILES["foto"];
//E a gravação no banco de dados.
?>
É possível fazer isto?
Nesse formato impossível, o php é uma linguagem de servidor, você passando um caminho local não vai fazer ele ter acesso ao seu arquivo… a melhor forma é usando o campo file em formulários html… ou codificando a imagem em base64, daí nesse caso a linguagem de servidor que você usar (seja java, php, python, etc) irá decodificar e salvar em disco por exemplo…
Entendi.
Eu queria consumir a URL como se fosse um webservice. Dessa maneira, codificando a imagem em base64 é possível usar da url?
Tentei modificar o .php
, deixei assim:
<?php
$descricao = $_POST['descricao'];
$foto = $_POST["foto"];
function base64_to_jpeg( $base64_string, $output_file ) {
$ifp = fopen( $output_file, "wb" );
fwrite( $ifp, base64_decode( $base64_string) );
fclose( $ifp );
return( $output_file );
}
$imagem_do_produto = base64_to_jpeg( $foto, 'tmp.jpg' );
echo $foto;
?>
Usando uma function
que converte e a url
de consumo, como está abaixo fica enorme e estoura um erro:
401 - Request-URI too Long. The requested URL’s length exceeds the capacity limit for this server.
Como eu faço pra resolver este ponto agora?
http://teste.com.br/cadastrar_produto.php?descricao=MOUSE&foto=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABJ4AAAM8CAYAAAAWYGqBAAAKN2lDQ1BzUkdCIElFQzYxOTY2LTIuMQAAeJydlndUU9kWh8+9N71QkhCKlNBraFICSA29SJEuKjEJEErAkAAiNkRUcERRkaYIMijggKNDkbEiioUBUbHrBBlE1HFwFBuWSWStGd+8ee/Nm98f935rn73P3Wfvfda6AJD8gwXCTFgJgAyhWBTh58WIjYtnYAcBDPAAA2wA4HCzs0IW+EYCmQJ82IxsmRP4F726DiD5+yr
Apaguei quase tudo porque não permiti a quantidade de caracteres no post, mas é muito grande a imagem convertida em base 64.
GET
Com capacidade de 1024 caracteres, este método é utilizado quando se quer passar poucas ou pequenas informações para realizar uma pesquisa ou simplesmente passar uma informação para outra página através da URL.
Como eu poderia fazer, neste caso?