barogana 0 Denunciar post Postado Setembro 19, 2009 Aew, gente, need help. Caso: Sistema para uso privado (em extranet). Tive muitos problemas, em uploads de arquivos (pdfs), desde a melhor organização para os documentos (pastas, subpastas, subpastas...), até mesmo qto próprio upload (desde a velocidade de upload, até as permissões nas pastas)... bem... enfim, o melhor mesmo é colocar essas "tralhas" num blob. Iniciante sofre, por isto existem poucos monges. xD Mas consegui, após várias horas de pesquisas (melhor dizendo: estudos, pq vão valer pra um longo tempo), adequar a rotina que "upa" os arquivos pdf, para um insert em blob, e também, com todos os testes (espero que "todos"!) de visualização e manipulação dos arquivos. Graças a Deus, minha tabela teve uma boa análise, e tem a seguinte estrutura: id (do cliente [chave de outra tabela]), documento (nr do documento), arqpdf (nome físico do arquivo), e outros campos mais. com esta estrutura adicionei adocumento (longblob - para o arquivo pdf), tipoarq (varchar 40 -para a extensão mime), tamarq (int - para o tamanho do arquivo pdf) Na inserção via cadastro, está funcionando e tudo parece perfeito. O problema: Agora que a "cobra fuma". Tenho quase 3 mil arquivos pdfs, em uma pasta, que preciso colocar nos blobs dos devidos registros. Ja me exaustei, e não achei nenhum tutorial, script ou informação para obter os dados do arquivo (neste caso o nome do arquivo que está no campo "documento", e obter as informações necessárias para fazer o update (adocumento, tipoarq,tamarq)no registro, sem um form com <input type='file'.... A principio achei que nao seria dificil, pois tinha pensando em colocar <input type='file' name='arquivopdf' value='NOMEDOARQUIVO A UPAR'> mas isto não funfou,pq input file não pega "value", snif. Agradeço qualquer informação. Segue o código, para os "monges" irem direto ao espírito da coisa. Thx. <?php ob_start(); header("Content-Type: text/html; charset=ISO-8859-1",true); include("conn.php"); function mime_type( $file ) { //http://forum.imasters.com.br/index.php?/topic/213729-detectar-o-mime-type-de-arquivos/ //removido trocentas extensões que não me interessam $filetype = substr(strrchr( $file, '.' ), 1 ); $mimetypes = array("pdf" => "application/pdf"); return implode( '', array_keys( array_flip( $mimetypes ), $filetype )); } $query = "select * from tabeladocumentos order by id limit 2"; // limit 2 $result = mysql_query($query) or die(mysql_error()); while ($row = mysql_fetch_array($result)){ $nomedoarquivo = $row['arqpdf']; $pasta ="arquivos/"; $procurar = "arquivos/" . $nomedoarquivo; $arquivo = fopen($procurar,'r'); $tamanho = filesize($procurar); $tipo = mime_type($procurar); $conteudo = $fread($arquivo,$tamanho); fclose($arquivo); /* $fp = fopen($procurar, "rb"); $conteudo = $fread($fp, $tamanho); $conteudo = addslashes($conteudo); fclose($fp); */ //echo $arquivo; echo "fp=" . $fp . "conteudo=" .$conteudo; echo "<br>tamanho=" .$tamanho; echo "<br>tipo=" .$tipo; $nquery="update tabeladocumentos set=aadocumento='".$arquivo."', tipo='".$tipo."', tamanho=".$tamanho." where id='".$row['id']." and documento='".$row['documento']."'"; //$insere = mysql_query($nquery); echo $nquery . " atualizado <br>"; } /* $arquivo = $_FILES["arquivopdf"]["tmp_name"]; $tamanho = $_FILES["arquivopdf"]["size"]; $tipo = $_FILES["arquivopdf"]["type"]; $nome = $_FILES["arquivopdf"]["name"]; //$titulo = $_POST["titulo"]; $fp = fopen($arquivo, "rb"); $conteudo = fread($fp, $tamanho); $conteudo = addslashes($conteudo); fclose($fp); */ ?> Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Setembro 20, 2009 http://br2.php.net/manual/pt_BR/features.file-upload.php Compartilhar este post Link para o post Compartilhar em outros sites
barogana 0 Denunciar post Postado Setembro 20, 2009 http://br2.php.net/manual/pt_BR/features.file-upload.php sorry man... ja li este tópico do php.net e outros, por várias vezes, e não sei o que se enquadra ali no que preciso. Compartilhar este post Link para o post Compartilhar em outros sites
barogana 0 Denunciar post Postado Setembro 21, 2009 Matias, pls, pode fechar o tópico. Se não houve alguma resposta ainda, não acredito que vá haver uma. thx Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Setembro 21, 2009 Não sei se é a melhor das soluções, mas tu pode renomear esses arquivos usando um batch para algo como: arquivo00001.pdf arquivo00002.pdf arquivo00003.pdf arquivo00004.pdf Jogar eles numa pasta, e fazer um LOOP usando for(). Compartilhar este post Link para o post Compartilhar em outros sites
barogana 0 Denunciar post Postado Setembro 22, 2009 Não sei se é a melhor das soluções, mas tu pode renomear esses arquivos usando um batch para algo como: arquivo00001.pdf arquivo00002.pdf arquivo00003.pdf arquivo00004.pdf Jogar eles numa pasta, e fazer um LOOP usando for(). thx, boy. mas foi extamente issoo q pensei, o problema é que não conseguí alimentar corretamente estas variáveis $arquivo = fopen($procurar,'r'); $tamanho = filesize($procurar); $tipo = mime_type($procurar); $conteudo = $fread($arquivo,$tamanho); já que todos os tutoriais e informações se referem a dados de um <input type="file", e não de uma variável com "informações de um arquivo". qto a renomear os arquivos, por lógica é desnecessário, já que tenho o nome deles while ($row = mysql_fetch_array($result)){ $nomedoarquivo = $row['arqpdf']; $nomedoarquivo <<- é o nome do arquivo que necessito colocar na coluna aadocumento como na linha abaixo $nquery="update tabeladocumentos set=aadocumento='".$arquivo."', tipo='".$tipo."', tamanho=".$tamanho." where ... thx yet well... in abuse to your patience. como você faría isso, if possible. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 22, 2009 this thread context dont seems upload question. do you need use upload or use file system functions ? Compartilhar este post Link para o post Compartilhar em outros sites
barogana 0 Denunciar post Postado Setembro 22, 2009 this thread context dont seems upload question. do you need use upload or use file system functions ? man... dont make hard questions... i'm newbie in php. case: i have a folder (on host) with +- 3000 pdf files, and i need put all this files in a collumn blob. a think than a "for each" files in folder to get informations to put in collumns (content, size file and mime-type) is enough. sry... this post is getting too long. I thought it would be easier, snif. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 22, 2009 its ok all you need is on "PHP file system functions" http://php.net/filesystem basically, starts looking for directory list functions. http://php.net/scandir http://php.net/opendir on manual you'll find scope explanation and some samples from php user contributors. if you have dificult for undestand any especific functions or methods, post here in portuguese for share knowledge with other members. best regards Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Setembro 22, 2009 você nao entendeu o q o manual pode t ajudar? Ja me exaustei, e não achei nenhum tutorial, script ou informação paraobter os dados do arquivo (neste caso o nome do arquivo que está nocampo "documento", e obter as informações necessárias para fazer oupdate (adocumento, tipoarq,tamarq)no registro, sem um form com<input type='file'.... a variavel super global $_FILES t da toda informacao do upload eh so ler o manual, faça um teste super simples faca um form com um input file com action para uma pagina php com este codigo <?php echo "<pre>"; print_r($_FILES); echo "</pre>"; veja se ele retorna o q você ker exatamente.... Compartilhar este post Link para o post Compartilhar em outros sites
barogana 0 Denunciar post Postado Setembro 22, 2009 its ok all you need is on "PHP file system functions" http://php.net/filesystem basically, starts looking for directory list functions. http://php.net/scandir http://php.net/opendir on manual you'll find scope explanation and some samples from php user contributors. if you have dificult for undestand any especific functions or methods, post here in portuguese for share knowledge with other members. best regards goooooooood i go test it at night, I believe this is even what I need. Compartilhar este post Link para o post Compartilhar em outros sites