Télécharger l'image directement via la Ligne de Commande de mySQL
J'ai une table mySQL qui a un champ appelé "image" avec un type de données de "BLOB". Je me demandais si il est possible de télécharger une image, dans ce domaine, directement à partir de la Ligne de Commande Client, plutôt que de le faire par le biais de php...Si c'est possible, alors exactement où dois-je placer mes fichiers d'image?
OriginalL'auteur BurninatorDor | 2011-12-08
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser le LOAD_FILE() fonction.
Voir le manuel pour les exigences sur le chemin d'accès du nom de fichier, privilèges, etc.
OriginalL'auteur Bill Karwin
LOAD_FILE
ne fonctionne qu'avec certains privilèges et si le fichier est sur le serveur. J'ai trouvé un moyen de le faire fonctionner complètement à côté client:L'idée est de coder l'image en base64 à la volée et de les laisser ensuite MySql pour les décoder.
OriginalL'auteur Teudimundo
Je vous recommande de ne jamais télécharger des images directement dans une base de données, il est tout à fait inefficace. Il est préférable de simplement stocker l'emplacement et le nom de l'image et de stocker les images dans un dossier quelque part.
et si vous voulez "télécharger" via la ligne de commande, il vous suffit de faire un:
et en fonction de votre environnement, vous pouvez utiliser un accès shell à déplacer des images dans. Je ne suis pas tout à fait sûr de ce que vous essayez de faire avec ces images, ou la façon dont votre système est configuré. Vous aurez probablement besoin de le préciser.
quelle langue utilisez-vous avec mysql? C'est aussi simple que l'exécution d'une commande sql pour obtenir la chaîne d'emplacement de la base de données et d'ouvrir ce fichier avec votre langue. Personnellement, je pense que l'utilisation d'load_file est beaucoup plus troublant.
Oui, load_file() didnot travail dans mon cas, donc je suis maintenant sur la planification d'extraire des images à partir du système. Je vais créer un service web en C# qui permet de récupérer l'emplacement du fichier de la base de données mysql...C'est juste le backend....la face avant est entièrement en HTML5 + CSS3 + JavaScript. Donc je suppose que je vais devoir chercher les ressources qui va m'aider à charger une image à partir d'une adresse donnée dans le code JavaScript peut-être? Merci pour votre aide tout de même...
-1 pour les non-informés opinion sur la base de données d'objets blob.
OriginalL'auteur mugetsu
C'est une variation sur Teudimundo's réponse qui fonctionne avec les anciennes versions de MySQL, où Base64 fonctions ne sont pas disponibles:
L'astuce est d'utiliser
xxd -p
pour convertir un fichier binaire à une plaine hexdump:puis à l'aide de
tr -d \\n
pour supprimer les retours à la ligne, et enfin intégrer le résultat dans une base de données MySQL spécifiques hexdump chaîne de caractères littérale:x'...'
OriginalL'auteur Tobia
Il est plus préférable de construire un exemple d'application, puis insérer les valeurs dans la base de données. Par exemple, cette méthode pourrait être utilisée pour entrer un type de données BLOB dans la base de données...
OriginalL'auteur BurninatorDor
Parfois nous essayez de télécharger le fichier à l'aide de loadfile mais le fichier n'est pas chargé ou le chemin du fichier au format texte est stocké dans le champ BLOB. C'est à cause de problèmes d'accès. Si vous êtes face à un tel état, au lieu de charger le fichier à partir de n'importe quel endroit, essayez de le charger à partir du chemin de données de mysql, de préférence, comme :
OriginalL'auteur sushil surana