4
respostas

Ionic 4 - Salvar imagem usando http.post no servidor php

Como faço para salvar uma imagem (camera) capturada no ionic 3/4 e salvar no servidor php usando http.post?

4 respostas

Eae cara,

Você pode usar input file para pegar o base64 e enviar para seu Server(Php) la você converte esse base64 para salvar no formato da imagem e depois vc retorna o link da imagem.

Exemplo : function getBaseUrl () { var file = document.querySelector('input[type=file]')['files'][0]; var reader = new FileReader(); var baseString; reader.onloadend = function () { baseString = reader.result; }; console.log(baseString); }

Se caso vc não conseguir, bora trocar uma ideia

Boa tarde, Miguel! Como vai?

O que o Vinicius falou é uma ideia! O ponto principal é que o seu back-end em PHP precisa estar apto para receber o upload da foto!

Se ao seguir a ideia dada pelo Vinicius vc tiver algum problema é só mandar aqui que e a gente tenta te ajudar!

Grande abraço e bons estudos, meu aluno!

Acho que não ficou claro minha duvida.

Qual codigo/exemplo para enviar dados via http.post do ionic e receber eles no php.

Eu fiz um teste, mas os dados enviados no http.post não estão chegando no php.

No php

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, OPTIONS, POST');
header('Access-Control-Allow-Headers: Content-Type, Content-Range, Content-Disposition, Content-Description');
var_dump($_POST);

No ionic

let headers = new Headers();
        headers.append('Access-Control-Allow-Origin' , '*');
        headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');
        headers.append('Content-Type', 'application/json');
        let options = new RequestOptions({ headers:headers});

        let paramData = {params: {teste:"valor-teste"};
    let urlservidor = 'http://www.amornamedida.com.br/coach/index.php/app/services';
        let retorno = this.http.post(
            urlservidor, paramData, options)
            .map((response) => this.parseResponse(response))
            .do(data => console.log('Retorno API: ', data))
            .catch(this.handleError)
            .finally(() => {

            });

No ionic (debug chrome) da erro:Failed to load http://www.amornamedida.com.br/coach/index.php/app/services: Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.

E no PHP var_dump($_POST), esta recebendo null/vazio

Miguel, no Ionic, experimente remover as linhas a seguir:

headers.append('Access-Control-Allow-Origin' , '*');
headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');

Depois tente enviar a requisição e veja o que ocorre.

Se o problema persistir é só mandar um alô aqui que eu continuo a tentar te ajudar!