upload de arquivos sem input file
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);
*/
?>
Discussão (10)
Carregando comentários...