J'utilise la base de données de CodeDigniter 2.1.0 et MySQL. J'ai téléchargé une image via un formulaire et le stocké avec succès dans un répertoire de téléchargement et j'ai également enregistré avec succès le chemin complet de l'image dans ma base de données. Mais j'ai un problème de montrant l'image en appelant le chemin complet de ma base de données.
Voici mon code pour le téléchargement: p>
<img src="<?php echo $data['screenshot'];?>" /> //($data['screenshot'] refers to the image location retrieved from database)
3 Réponses :
Contrôleur: modèle: p> Votre vue: p> Modèle alternatif: P> function getImage($Id){
$Q = $this->db->query("SELECT photo FROM tableWHERE phptoID=".$Id);
if ($Q->num_rows()) {
$data = $Q->row_array();
$data = $data['MA_PHOTO'];
$Q->free_result();
}
$size = $data->size();
$ret = $data->read($size);
return (isset($ret)) ? $ret : '';
}
Donc, dans votre fichier VEW, vous renvoyez votre contrôleur, votre méthode et votre ID d'image ..., le site ECHO_URL est utilisé pour afficher des images. Dans votre contrôleur, vous devez créer une méthode pour imprimer l'image. Cette méthode doit appeler le modèle d'image pour obtenir l'URL de l'image par une requête SQL
Pourquoi faites-vous en-tête ("Type de contenu: Image / JPEG"); CODE> Ceci? Il ne stocke pas l'image dans la DB. Il stocke le nom de l'image. L'image est stockée sur le système de fichiers. Et dans votre fonction
getImage code>, si la ressource n'existe pas, retournez
false code> pas
'' code>
@Flukey pouvez-vous fournir une solution?
Dans votre base de données, si j'ai bien compris, vous stockez l'image comme Alors, lorsque vous échoez au chemin de l'image, l'attribut p>
qui ne fonctionnera pas comme un chemin local sur votre machine. Je n'aurai pas cette image sur mon système de fichiers. L'image doit être accessible sur le serveur Web. (comme votre fichier index.php) p>
Vous avez donc besoin du stockage de l'image comme suit: P>
et ensuite faire ou stocker l'image comme: p>
Edit: Pour être clair: où vous stockez, c'est correct. Mais, vous n'avez pas besoin du chemin complet de la DB, vous avez juste besoin du chemin du serveur Web. p> C: /wamp/www/my_project/uploads/_1_.jpg code> p> p>
img src code>, vous aurez p>
téléchargements / _1_.jpg code> p>
" /> p> p> p> P> P> P>
_1_.jpg code> et
et puis faire p>
" /> p> p> p> P>
Pour afficher des images dans le navigateur Web, vous devez donner une URL de cette image plutôt que le chemin de l'image.
Le code suivant n'affiche aucune image p> suivi Code URL utilisé de l'image, le nom du serveur localhost est donné, vous devez remplacer l'adresse de votre serveur avec localhost. p>
Pourquoi stockez-vous le chemin complet comme
C: /wamp/www/my_project/uploads/_1_.jpg code>? Cela ne fonctionnera pas. Vous devez vous référer au chemin du serveur Web sur le serveur Web, pas le système de fichiers.
J'utilise $ image_path = realpath (AppPath. '../uploads'); obtenir le chemin réel dans la base de données. Si ce n'est pas la procédure standard, veuillez-vous le fournir?