iRCC 0 Denunciar post Postado Fevereiro 15, 2012 Boa tarde a todos, acho que essa pergunta vai parecer um pouco estranha a todos mas vamo lá. Tenho um sisteme de upload de arquivos que não está funcionando como deveria, eu faço o upload de um arquivo e movo ele para uma pasta da minha aplicação, até aqui td certo, o problema é que após fazer o upload eu preciso ler oq tem dentro desse arquivo (pode ser xml, txt...) só que ele simplesmente não le o arquivo.... Fiz vários teste e um deles foi o seguinte: rodei o script que vai ler o arquivo de upload só que no lugar do arquivo de upload coloquei um fixo (dentro da mesma pasta e com o caminho do arquivo), li o arquivo e funcionou perfeitamente. O servidor que estou usando é o IIS, não sei se pode ter algo a ver... sempre usei apache e em outros lugares onde uso a mesma aplicação de upload e leitura de arquivo tudo funciona corretamente.... Alguém já teve algum problema parecido? Compartilhar este post Link para o post Compartilhar em outros sites
iRCC 0 Denunciar post Postado Fevereiro 16, 2012 Não sei se muda alguma coisa, mas o upload é feito por linha de comando pclose(popen('start /B php -c... o arquivo chega a pasta e o script php que deveira ler ele também é chamado, chega na hora de ler o que tem "dentro" do arquivo não está acontecendo nada Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Fevereiro 16, 2012 posta o codigo...perceba q o xml tem uma estrutura diferente do txt, e portanto precisara de mais de um codigo pra ler cada tipo de arquivo... Compartilhar este post Link para o post Compartilhar em outros sites
iRCC 0 Denunciar post Postado Fevereiro 16, 2012 então o código de linha de comando é este pclose(popen('start /B php -c c:/Windows site/importador.php '.$file, 'r')); para ler o xml uso o simplexml_load_file. Fiz alguns outros testes em outros diretorios e acontece a mesma coisa, leio o arquivo e quando vou escrever, nada acontece... apenas é criado o arquivo e nada dentro Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Fevereiro 16, 2012 então o código de linha de comando é este pclose(popen('start /B php -c c:/Windows site/importador.php '.$file, 'r')); para ler o xml uso o simplexml_load_file. Fiz alguns outros testes em outros diretorios e acontece a mesma coisa, leio o arquivo e quando vou escrever, nada acontece... apenas é criado o arquivo e nada dentro posta o codigo...posta o codigo...posta o codigo todo...kd o do upload...da onde saiu pclose e popen...? Compartilhar este post Link para o post Compartilhar em outros sites
iRCC 0 Denunciar post Postado Fevereiro 16, 2012 upload if (isset($_FILES['file'])){ $nome = str_replace("\\","",$_FILES['file']['name']); $file = 'c:/temp/' . $nome; if (@move_uploaded_file($_FILES['file']['tmp_name'], $file)) { $conteudo = file_get_contents($file); // Retorna o md5 indicando se o arquivo foi recebido ok ou não echo result(0,md5($conteudo)); flush(); // Somente importa se não for sábado nem domingo // Executa a importação background_import($nome); } else { echo result(3, 'Erro ao tentar copiar o arquivo para seu destino.'); } function background_import function background_import($file) { global $conexao; $pid = -1; // Simula um número de processo // Se existe a função, abre um novo processo if (function_exists('pcntl_fork')) $pid = pcntl_fork(); if($pid == -1) { // Se deu erro ao abrir o processo ou não existe a função, tenta executar a importação via linha de comando // Se não contiver "win" no sistema operacional, executa um comando linux if (strpos(strtolower(PHP_OS),"win") === false) { exec('nohup php -c ' . getPathIni() . ' ' . $xml_config->config->caminho_fontes . '/importador/importador.php '.$file.' > /dev/null &'); } else { // Se contiver "win", executa um comando windows pclose(popen('start /B php -c ' . getPathIni() . ' ' . 'site/importador/importador.php '.$file, 'r')); } } elseif ($pid == 0) { // Se executou o processo filho, chama o importador nesse processo include($xml_config->config->caminho_fontes . '/importador/importador.php'); } } treco do importador que interessa if (!isset($file) && @!$file = $argv[1]) { $fp = fopen('log_'.date("dmY").'.log',"w+"); fwrite($fp, "Nome do arquivo XML no recebido."); fclose($fp); exit; } // Abre o arquivo de dados $fp = fopen('C:/tmp/'.$file,'r'); $texto = fread($fp,filesize($fp)); fclose($fp); $fp = fopen('C:/tmp/ler.txt','w+'); fwrite($fp,$texto.'aaaa'); fclose($fp); exit; ali coloquei um 'aaaaa' só para ter certeza que o script consegue escrever ago dentro do ler.php Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Fevereiro 20, 2012 sera q eh aki? upload $file = 'c:/temp/' . $nome; importador $fp = fopen('C:/tmp/'.$file,'r'); perceba q setou diretorios diferentes, e pior mandou para o temporario, nao use o temporario, nunca se sabe quando o SO vai limpar akele diretorio... Compartilhar este post Link para o post Compartilhar em outros sites