Não localiza arquivo na pasta

1. Não localiza arquivo na pasta

Leonardo
leonardo_ck

(usa CentOS)

Enviado em 26/09/2017 - 16:26h

Pessoal é o seguinte, tenho o script que quando uso ele em ambiente de teste no windows com xamp ele localiza o arquivo que preciso tudo perfeito, com caminho absoluto até a pasta.
Porem quando fiz o upload do sistema para o servidor linux debian ele não localiza mais o arquivo, creio que seja o caminho a baixo o código.
o caminho absoluto da pasta onde se encontram os arquivo é: /var/www/html/nfe/arquivos/
já tentei todas as formas a baixo, quando ele chega no if a comparação não bate e ele salta.

<?php
$pasta = 'arquivos/';
//$pasta = '/arquivos/';
//$pasta = './arquivos/';
//$pasta = '../arquivos/';
//$pasta = '../nfe/arquivos/';
//$pasta = 'nfe/arquivos/';
//$pasta = '/nfe/arquivos/';
//$pasta = '/html/nfe/arquivos/';
//$pasta = '/var/www/html/nfe/arquivos/';

$xmlNfe = $pasta."Nfe".$_POST["arquivo"]."-nfe.xml";
$pdfNfe = $pasta."Nfe".$_POST["arquivo"]."-nfe.pdf";


if(isset($xmlNfe) && file_exists($xmlNfe) && ($pdfNfe) && file_exists($pdfNfe) ){ // faz o teste se a variavel não esta vazia e se o arquivo realmente existe

$zip = new ZipArchive();

if( $zip->open( '/var/www/html/nfe/zips/arquivo.zip',ZipArchive::CREATE ) === true){

$zip->addFile($pdfNfe , 'Danfe.pdf');
$zip->addFile($xmlNfe , 'xml.xml');
$zip->close();
}
$dir = '/var/www/html/nfe/zips/';
$arquivo = 'arquivo.zip';
$var = "application/force-download";
if(file_exists($dir.$arquivo)){
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $var");
header("Content-Disposition: attachment; filename=\\"".basename($dir.$arquivo)."\\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($dir.$arquivo));
readfile($dir.$arquivo);
}

unlink($dir.$arquivo);

}else{
echo "<script>window.location='index.php';alert('CHAVE da NFe não condiz com uma NFe valida ou foi digitada incorretamente! Tente novamente!');</script>";
exit;
}
exit;



  


2. Re: Não localiza arquivo na pasta

Adiel Esdras Schonevald Tolentino
esdraschonevald

(usa Ubuntu)

Enviado em 07/10/2017 - 01:21h

Olá colega,
O caminho completo parece estar correto, porém para evitar erros eu aconselho usar a constante __DIR__ do PHP. Ela traz o caminho completo até a pasta onde está o script. Supondo que o seu script estivesse na pasta nfe ficaria assim
$pasta = __DIR__ . '/arquivos/';

Caso esteja em uma sub pasta você pode voltar um nível desta forma
$pasta = __DIR__ . '/../nfe/arquivos/';

Lembre-se de conferir sempre se a variável $_POST['arquivos'] está preenchida corretamente você pode dar um print_r na variável ou escrever um log desta forma
$fp = fopen(__DIR__ . '/log.txt', 'a+');
fwrite($fp, print_r($_POST['arquivos'], true));
fclose($fp);


Espero ter ajudado!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts