Bonjour,
Je suis le tuto créer un site web de A à Z mais là j'ai un petit souci:
j’ai fait exactement comme grafikart les images sont bien enregistrés dans la BDD et dans le dossier img, mais les images ne s’affichent pas sur la page d’édition des images voici le code de ma page admin_index :

 <?php //echo debug($images); ?>
<table class="table">
    <thead>
        <tr>
            <th>Titre</th>
            <th>Actions</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($images as $k => $v){ ?>
            <tr>
                <td>
                   <img src="<?php echo Router::webroot('img/'.$v->file); ?>"> 
                </td>
                <td> <?php echo $v->nameimg; ?> </td>
                <td>
                    <a onclick="return confirm('Voulez vous vraiment supprimer cette image')" href="<?php echo Router::url('admin/medias/delete/'.$v->id) ?>">Supprimer</a>
                </td>
                </tr>
        <?php }; ?>
    </tbody>
</table>
<div class="page-header">
    <h1>Ajouter une image</h1>
</div>
<form action="<?php echo Router::url('admin/medias/index/'.$post_id); ?>" method="post" enctype="multipart/form-data" >
    <?php echo $this->Form->input('file','Image',array('type'=>'file')); ?>
    <?php echo $this->Form->input('nameimg','Titre'); ?>
    <div class="actions">
        <input type="submit" value="Envoyer" class="btn btn-primary">
    </div>

</form>

et quand je fais un debug($images) j'ai tous les details des images

Array
(
    [0] => stdClass Object
        (
            [id] => 30
            [nameimg] => bbbv
            [file] => 2016-04/G0010224.JPG
            [post_id] => 42
            [type] => img
        )

    [1] => stdClass Object
        (
            [id] => 31
            [nameimg] => bbbv
            [file] => 2016-04/G0010224.JPG
            [post_id] => 42
            [type] => img
        )

)

Votre aide SVP merci.

9 réponses


Mn0073RF
Auteur
Réponse acceptée

J’ai peut-être trouvé, ce script ne donnais pas un chemin exacte

<img src="<?php echo Router::webroot('img/' .$v ->file); ?>">

Voici le chemin qu’il me donne:

<img src="/tuto/site/img/2016-04/G0010224.JPG">

mais le chemin correcte devrais etre celui-ci:

<img src="/tuto/site/webroot/img/2016-04/G0010224.JPG">

et j'ai changer mon script comme suit:```
<img src="<?php echo Router::webroot('webroot/img/' .$v ->file); ?>">

bonjour,

si tu inspectes ton code dans ton navigateur, que vois tu dans les balises images ?
Router::webroot te retourne t-il bien quelque chose comme : /img/2016-04/G0010224.JPG ?

Mn0073RF
Auteur

bonjour
voici ce que j'ai dans le console de l'inspecteur

GET http://localhost/tuto/site/img/2016-04/G0010224.JPG 404 (Not Found)

a voir le chimin n'est pas correct comment puis-je changer?
merci

tes images sont-elles bien dans le dossier /img/2016-04 ?
si tu remplace

<img src="<?php echo Router::webroot('img/'.$v->file); ?>"> par <img src="/img/2016-04/G0010224.JPG" >
que ce passe t-il ?

( en considerant que ton dossier img est bien à la racine de ton DOCUMENT_ROOT )
utilises-tu un .htaccess pour faire une réécriture d'url ? l'erreur peut venir de là

Mn0073RF
Auteur

j'untilise bien un .htaccess; mes images sont bien dans le dossier img de mon webroot
si je remplace quoi vouliez vous dire?

ça :


<tbody>
        <?php foreach ($images as $k => $v){ ?>
            <tr>
                <td>
                   <img src="/img/2016-04/G0010224.JPG" >     <!-- ici, pour voir si l'image s'affiche, ou si tu as toujours une 404 -->
                </td>
                <td> <?php echo $v->nameimg; ?> </td>
                <td>
                    <a onclick="return confirm('Voulez vous vraiment supprimer cette image')" href="<?php echo Router::url('admin/medias/delete/'.$v->id) ?>">Supprimer</a>
                </td>
                </tr>
        <?php }; ?>
    </tbody>

peut on voir ton .htaccess ?

Mn0073RF
Auteur

j'ai toujours cette erreur et je ne compred pas !

GET http://localhost/img/2016-04/G0010224.JPG 404 (Not Found)

il y a problème entre la config apache et comment ton Router construit les url
peut on voir ton .htaccess ?

dans l'inspecteur de code que vois-tu à la place de ton lien de suppression d'image ?

<?php echo Router::url('admin/medias/delete/'.$v->id) ?>