Zend Framework

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-05-2017 23:31:41

CedLP182
Membre
Date d'inscription: 25-03-2017
Messages: 15

Multiple Upload

Bonjour à tous, je voudrai savoir comment faire un Upload Multiple avec une Base de donnée avec Zend, je sais le faire pour une seul image mais avec plusieurs image en même temps je ne sais pas le faire.

j'ai une table Image(id,nom)

ensuite voici la form dans mon index.phtml

Code:

<form method="POST" action="<?php echo $this->url('upload')?>" enctype="multipart/form-data">

    <div class="panel panel-primary">
        <div class="panel-heading">Enter New Picture</div>
        <div class="panel-body">



            <div class="form-group email required user_inline_email"><label class="email required sr-only" for="user_inline_email"><abbr title="required">*</abbr> URL</label><input name="image" placeholder="URL" type="file" multiple=""></div>


            <input class="btn btn-danger" type="submit" value="Add Picture">

        </div>
    </div>
</form>

puis dans mon indexcontroler

Code:

 public function uploadAction()
    {

        $pubtable = $this->getServiceLocator()->get('Image\Model\ImageTable');
        $request = $this->getRequest();

        if($request->isPost()){
            $File = $this->params()->fromFiles('image');


            $data = array(
                'nom' => $File['name'],
            );

            $upload = new Http();

            if($upload->isValid()){
                $upload->setDestination('public/img');

                if ($upload->receive($File['name'])){
                    $pubtable->insert_image($data);
                    $this->redirect()->toRoute('home');
                }
            }else {



            }

        }


    }

qu'est ce que je devrais rajouter à ce code pour avoir un upload multiple s'il vous plaît?

Merci d'avance

Hors ligne

 

#2 17-05-2017 14:44:43

CedLP182
Membre
Date d'inscription: 25-03-2017
Messages: 15

Re: Multiple Upload

Bon me revoilà j'ai modifié mon code, et maintenant les images vont dans le dossiers mais leur nom ne sont pas affiché dans la base de donnée pourquoi? voici mon code

Code:

 public function uploadAction()
    {

        $pubtable = $this->getServiceLocator()->get('Image\Model\ImageTable');
        $request = $this->getRequest();
        $File = $this->params()->fromFiles('image[]');
        $upload = new Http();
        if($request->isPost()){

            foreach($File['image']['name'] as $key => $name ){
                $file_name = $key.$File['image']['name'][$key];

                $data = array(
                    'nom' => $file_name['image'][$key],
                );

            }


            if($upload->isValid()){

                $upload->setDestination('public/img');
                if ($upload->receive($File['image'])){
                    $pubtable->insert_image($data);
                    return $this->redirect()->toRoute('home',array('action'=>'index'));


                }
            }

        }


    }

sa me met comme erreur

Invalid argument supplied for foreach() in C:\wamp\www\zend1\module\Application\src\Application\Controller\IndexController.php on line 40

Undefined variable: data in C:\wamp\www\zend1\module\Application\src\Application\Controller\IndexController.php on line 54

File:
C:\wamp\www\zend1\vendor\zendframework\zendframework\library\Zend\Db\Sql\Insert.php:97
Message:
values() expects an array of values or Zend\Db\Sql\Select instance

Hors ligne

 

#3 17-05-2017 16:18:49

JGreco
Modérateur
Date d'inscription: 22-12-2012
Messages: 400

Re: Multiple Upload

Bonjour,

1) Les messages d'erreurs sont assez explicites, je ne vois pas exactement ce qu'il te manque pour le coup...

2) Pas d'appel au ServiceLocator dans les controllers, maintes fois répété sur ce forum, jamais appliqué (Dependancy injection pattern à la place).

3) Essaye avec ce bout de code une fois que tu l'auras compris et testé :

Code:

[lang=php]
$file = $this->getRequest()->getFiles()->toArray();
            $post = array_merge_recursive(
                $request->getPost()->toArray(),
                $file
            );

// ton post est maintenant peuplé d'une collection de fichiers, tu peux traiter cela dans un service pour insérer les fichiers en base de donnée.

ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages