[RESOLVIDO]Executar arquivos que estão em um diretório do servidor

Pessoal, vou perguntar uma coisa que deve ser simples , porém não encontrei uma resposta.
Eu estou reproduzindo arquivos de áudio em um grid, graças ao Joelton SIlva, que passou rapidamente os passos de como fazer isso. Porêm, agora estou com um outro problema, meus arquivos de áudio são gravados através de uma aplicação que os colocam em uma pasta no servidor, mas não na área do wwwroot, por exemplo:
c:\Arquivos\audio\nomedoarquivo.wav.

Pergunto : Como setar esse diretório no comando:
{Player}="

";

usei tambem:

c://Arquivos/audio/nomedoarquivo.wav.
e não deu certo.

Grato a todos

O PHP terá que ter acesso a essa pasta.
Ou vc terá que sincronizar essa pasta com uma pasta sob wwwroot

Boa noite Haroldo,

E possivel colocar uma permissão em uma pasta, mesmo ela estando fora do Root?
Tem um exemplo?
Grato

qual o sistema operacional?

Procure no google por open_basedir para permitir o php acesar esta pasta se ela ficar fora do documentroot do apache. O resto é deixar ela com o mesmo usuário e grupo do apache.

1 Curtida

Bom dia Haroldo,
Meu sistema operacional é Windows

Bom dia
Obrigado Alexandre, vou cerificar

Pessoal , ainda não consegui pegar um arquivo fora do root, e executar.

Alguém tem mais alguma sugestão?

pode usar algo como:

$Local = "Caminho/audio.wav";  // funciona com url, não sei se funciona no windows direto
$PegaArquivo = fopen($Local , "rb"); 
$audio = stream_get_contents($PegaArquivo );//(pode tentar tambem com o file_get_contents)

Se o PHP estiver instalado no mesmo PC com Windows, com todos os direitos de acesso.

Pode-se fazer assim que dá certo:

$_som_original = {NomedoCampoWav}; // nomedoarquivo.wav

$_copia_execucao = $_som_original;

$_copiar = 'C://Arquivos//audio//'.$_som_original;

if (!copy($_copiar, $_copia_execucao)) {
    echo "falha ao copiar $_som_original."."<BR>";
}

{Som}="
<audio controls>
  <source src='$_copia_execucao' type='audio/wav'>
</audio>
";

O Interessante do comando ‘!copy’ do PHP que ele não vai gerar gargalo porque,
ele só vai copiar 1x, se o arquivo clone já existir ele pula ele automaticamente.

1 Curtida

Jailton, mais uma vez muito obrigado, funcionou , muito bem.

Dessa maneira, já esta ótimo, mas só uma pergunta, você teria uma sugestão de como só tocar e não copiar os Wavs ?

São muitos arquivos gerados. Mas cara de boa é só pra da uma melhorada, mas agradeço muito ok
Valeu mesmo

Então para tocar direto, teria que gravar eles a partir da pasta raiz www da sua aplicação ali,
o html/php poderia pega-los normalmente e executar sem ter que copiar.

Teria que mudar a pasta onde o outro programa seu que grava eles para gravar dentro do www,
por exemplo /file/audio

Grato amigão
Valeu
Por enquanto vou deixar assim, porque estas gravações podem ser reproduzidas também por uma aplicação DESKTOP, valeu mesmo .

Agradeço a todos que postaram com dicas:

Jailton, Haroldo, Alexandre e Jair.

Valeu galera.

O Software que usa não pode configurar a pasta para ficar sob a pasta wwwroot?

Caso não. A replicação é uma boa.

Caro Haroldo, vou usar a replicação por enquanto mesmo, porque pra fazer gravar no root, teria fazer umas mudanças no sw local, isso porque tem cliente que não usará browse, eu já tenho aplicações para desktops em muitos lugares .

Ma valeu
Grato

Olá, estou com a mesma dificuldade de executar arquivos que se encontram fora do diretório root (www) , porém é para executar um arquivo de imagem (.jpg) em uma grid.
É possível me ajudar ?

Para executar ‘mostrar’ essa imagem que esta fora do www só se tiver acesso via http://www.meu_siste.com.br/imagem.jpg diretamente, porque o PHP por padrão,
não vai ler outra pasta abaixo da raiz www da hospedagem.

Teria que usar o comando ‘copy’ ou o shell para copiar o arquivo para dentro do www.

Se for uma VPS ou Dedicado, você pode configurar, mas em hospedagens padrão
é bloqueado, ai você pode copiar o arquivo na hora para uma pasta de acesso ao
local do PHP:
https://www.php.net/manual/pt_BR/function.shell-exec.php
https://www.php.net/manual/pt_BR/function.copy.php