par
martial » 02 sept. 2007, 12:58
bonjour à tous
derniérement j'ai trouvé un programme sous dos intitulé PDFTOTEXT, celui ci converti parfaitement les PDF en txt ou csv. En effet, une fois effectué la conversion j'insére le document CSV dans une base de données Mysql.
D'autre part, cela fait plusieurs jours que je plante sur les fonctions exec() shell-exec,etc.. de php. En effet je souhaiterais que une fois téléchargé sur le serveur le fichier PDF soit converti automatiquement en csv!
Dans le script qui suit, le fichier est bien téléchargé et la commande exec() ne génére pas d'erreurs ...mais voilà en fait rien ne se passe et le fichier PDF n'est pas converti.
(sous la ligne de commande Dos , pdftotext fonctionne parfaitement)
Voici le script
$dossier = 'csv_bin/';
$fichier = basename($_FILES['pdf']['name']);
$taille_maxi = 10000000;
$taille = filesize($_FILES['pdf']['tmp_name']);
$extensions = array('.pdf');
$extension = strrchr($_FILES['pdf']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type pdf ';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['pdf']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
echo exec("start'csv_bin/pdftotext -layout -raw -nopgbrk $fichier.pdf $fichier.csv'");
bonjour à tous
derniérement j'ai trouvé un programme sous dos intitulé PDFTOTEXT, celui ci converti parfaitement les PDF en txt ou csv. En effet, une fois effectué la conversion j'insére le document CSV dans une base de données Mysql.
D'autre part, cela fait plusieurs jours que je plante sur les fonctions exec() shell-exec,etc.. de php. En effet je souhaiterais que une fois téléchargé sur le serveur le fichier PDF soit converti automatiquement en csv!
Dans le script qui suit, le fichier est bien téléchargé et la commande exec() ne génére pas d'erreurs ...mais voilà en fait rien ne se passe et le fichier PDF n'est pas converti.
(sous la ligne de commande Dos , pdftotext fonctionne parfaitement)
Voici le script
[php]
$dossier = 'csv_bin/';
$fichier = basename($_FILES['pdf']['name']);
$taille_maxi = 10000000;
$taille = filesize($_FILES['pdf']['tmp_name']);
$extensions = array('.pdf');
$extension = strrchr($_FILES['pdf']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type pdf ';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['pdf']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
echo exec("start'csv_bin/pdftotext -layout -raw -nopgbrk $fichier.pdf $fichier.csv'");
[/php]