J'ai un fichier PDF sur une machine locale. Je veux télécharger ce fichier dans un BLOB BINARY sur une base de données SQL. D'autres approches mentionnées ici [Binary Data in MySQL utilisent tous PHP. Je veux un moyen simple de télécharger ce fichier PDF sur la ligne de commande Linux. Malheureusement, je n'ai pas accès au système de fichiers distant donc je ne peux pas simplement stocker des liens vers le fichier comme mentionné ailleurs ... J'ai besoin d'utiliser cette base de données MySQL comme un système de fichiers virtuel pour ces fichiers PDF. Exemple de php, il semble que tout ce qui est nécessaire est d'échapper les barres obliques avant d'utiliser la commande INSERT? Existe-t-il un moyen simple d'y parvenir sur une ligne de commande Linux?stocker des données binaires dans mysql
Répondre
Je ne sais pas si cela résout complètement mon problème, mais j'ai trouvé une couche de système de fichiers implémentée au-dessus de MySQL. Je suppose que je peux l'utiliser pour stocker mes fichiers PDF comme BLOB automatiquement ... encore besoin de savoir comment stocker les clés du fichier PDF dans ce système de fichiers pour un accès structuré au fichier PDF basé sur quelque chose de plus significatif que < inode, seq >.
http://sourceforge.net/projects/mysqlfs/ et
http://www.linux.com/archive/feature/127055
Vous pouvez utiliser le navigateur curl pour soumettre le même POST que votre navigateur graphique. Renifler la demande que votre navigateur GUI envoie, puis répliquer cela avec curl.
Vous pouvez utiliser la fonction mysql LOAD_FILE en conjonction avec un petit shellscript pour le faire, je suppose.
code non testé suit:
#!/bin/bash
if [ -z $1 ]
then
echo "usage: insert.sh <filename>"
else
SQL="INSERT INTO file_table (blob_column, filename) VALUES(LOAD_FILE('$1'), '$1')"
echo "$SQL" > /tmp/insert.sql
cat /tmp/insert.sql | mysql -u user -p -h localhost db
fi
Et vous pouvez l'utiliser comme ceci:
<prompt>./insert.sh /full/path/to/file
Une meilleure mise en œuvre avec la vérification des erreurs, la création d'tempfile appropriée, échapper et d'autres raffinements est laissé comme un exercice à le lecteur. Notez que l'utilisation de LOAD_FILE()
nécessite le privilège FILE dans MySQL et un chemin d'accès complet au fichier.
Ma compréhension est LOAD_FILE nécessite que le fichier soit présent sur la machine distante hébergeant le serveur MySQL. Je n'ai pas cet accès. – badkya
vous avez raison. J'ai raté la partie sur le mysql étant distant. Je suppose que vous devrez le coder dans votre langage de programmation préféré. Cela devrait être faisable en moins de 100 lignes dans n'importe quelle langue. –
Voir cet article dans le livre de recettes MySQL qui comprend un exemple de script ainsi:
http://www.freeopenbook.com/mysqlcookbook/mysqlckbk-CHP-17-SECT-7.html
Il a quelques restrictions cependant, notamment que le fichier doit être stocké sur le même hôte que le serveur mysql.
- 1. Comment stocker des données dans MySQL via plusieurs threads?
- 2. méthodes pour stocker des fichiers binaires dans SVN
- 3. écriture logique pour stocker des données dans Mysql pour stocker des métadonnées de fichiers
- 4. Insertion de données d'image brutes (binaires?) Dans mysql? (PHP)
- 5. Données binaires dans .NET? (C++/CLI)
- 6. Insérer des données binaires dans SQL Server en utilisant PHP
- 7. stocker un pdf dans mysql
- 8. Enregistrement des données binaires dans la base de données SQL SErver dans vb.net
- 9. comment stocker une date dans une base de données mysql?
- 10. php stocker dans la base de données tamil php mysql
- 11. Données binaires d'écriture iPhone
- 12. Comment écrire des données binaires dans stdout dans python 3?
- 13. Comment transférer des données binaires avec Python?
- 14. Ecriture de données binaires
- 15. Lecture des données binaires avec l'erreur seekg
- 16. trouver les tables a des données binaires
- 17. Comment stocker des fractions de seconde dans mysql
- 18. Que considérer avant de stocker des dates négatives dans MySQL?
- 19. Silverlight Stocker des données localement
- 20. Evénement COM avec des données binaires dans les arguments
- 21. Comment stocker des données modifiées dans une base de données?
- 22. Comment stocker des caractères Hmong dans une base de données MySQL
- 23. PHP - Stocker des images dans des données SESSION?
- 24. Utilisez CDATA pour stocker les flux binaires bruts?
- 25. Stroring des fichiers binaires dans Google Gears DB?
- 26. Service WCF avec données binaires
- 27. Données binaires vs caractère Données confusion
- 28. Stocker un tableau binaire dans MySQL
- 29. stocker dans mysql Meduimtext et largtext
- 30. Stocker plusieurs valeurs dynamiques dans un champ dans mysql
Peut-être que je n'étais pas clair à ce sujet dans le post ... Je n'utilise pas d'interface graphique. Je veux juste télécharger un fichier PDF à la base de données SQL à partir de la ligne de commande. INSERT INTO ensemble de tables pdfBlob =, name = 'stupide.pdf'; Ma question est de savoir comment générer à partir de 'stupid.pdf' –
badkya
Désolé, je pensais que vous utilisiez actuellement un client PHP pour télécharger des fichiers. Cela vous aurait donné une approche de ligne de commande claire en utilisant curl. –