1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Upload de audio via POST com javascript e PHP

Tenho uma aplicação que grava audio utilizando javascript e estou tentanto enviar para um servidor php não ocorre nenhuma mensagem de erro, sou novo em PHP não sei o que pode estar dando errado abaixo está o código do cliente e do servidor.

Código Cliente Javascript:

$scope.enviar = function() {
    recorder.stop();
    recorder.exportWAV(function (blob) {
    try
      {
          var xhr= new XMLHttpRequest();
          var fd = new FormData();
          fd.append("file", blob);

          xhr.open("POST","http://localhost:8000/server/index.php/upload/index", true);
          xhr.send(fd);
          console.log('post enviado!');
        }
      catch(e)
      {
          alert('Ocorreu um erro :(' + e);
      }

    })
}

Código Servidor em PHP:

<?php

if(!defined('BASEPATH')) exist ('Não é permito acesso direto a esse script !');

header("Access-Control-Allow-Origin: *");

class Upload extends CI_Controller
{
    public function index()
    {
      echo "<script>console.log('POST')</script>";
      if(isset($_FILES['file']) and !$_FILES['file']['error'])
      {
        $fname = "audio" . ".wav";
        move_uploaded_file($_FILES['file']['tmp_name'], "../audio/wav/testes/" . $fname);
      }
    }
}

Cabeçalho do Pedido:

Host: localhost:8000
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:39.0) Gecko/20100101 Firefox/39.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Origin: http://localhost:8100
Access-Control-Request-Method: POST
Access-Control-Request-Headers: cache-control,pragma
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

Conteúdo do Pedido:

-----------------------------207465229613475306881332855556
Content-Disposition: form-data; name="file"; filename="blob"
Content-Type: audio/wav

RIFF$@
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags php javascript post ou faça a sua própria pergunta.