frantsium
frantsium

Reputation: 155

Only one file data going in to database

Hello I want uploaded files data in to database, but I got only one file data. All these files datas trying to go in to database but they use all same ID and thanks to this its writing this line over. How I get these all datas in to database ?

What Im trying to do :

            if (!empty($this->request->data) && is_uploaded_file($this->request->data['UploadFile']['file_upload']['0']['tmp_name'])) {
            $fileData = fread(fopen($this->request->data['UploadFile']['file_upload']['0']['tmp_name'], "r"), $this->request->data['UploadFile']['file_upload']['0']['size']);
            $this->request->data['UploadFile']['name'] = $this->request->data['UploadFile']['file_upload']['0']['name'];
            $this->request->data['UploadFile']['size'] = $this->request->data['UploadFile']['file_upload']['0']['size'];
            $this->request->data['UploadFile']['URL'] = $this->request->data['UploadFile']['file_upload']['0']['tmp_name'];
            $this->request->data['UploadFile']['data'] = $fileData;
            $this->UploadFile->save($this->request->data);
            }
            if (!empty($this->request->data) && is_uploaded_file($this->request->data['UploadFile']['file_upload']['1']['tmp_name'])) {
            $fileData1 = fread(fopen($this->request->data['UploadFile']['file_upload']['1']['tmp_name'], "r"), $this->request->data['UploadFile']['file_upload']['1']['size']);
            $this->request->data['UploadFile']['name'] = $this->request->data['UploadFile']['file_upload']['1']['name'];
            $this->request->data['UploadFile']['size'] = $this->request->data['UploadFile']['file_upload']['1']['size'];
            $this->request->data['UploadFile']['URL'] = $this->request->data['UploadFile']['file_upload']['1']['tmp_name'];
            $this->request->data['UploadFile']['data'] = $fileData1;
            $this->UploadFile->save($this->request->data);
            }
            if (!empty($this->request->data) && is_uploaded_file($this->request->data['UploadFile']['file_upload']['2']['tmp_name'])) {
            $fileData2 = fread(fopen($this->request->data['UploadFile']['file_upload']['2']['tmp_name'], "r"), $this->request->data['UploadFile']['file_upload']['2']['size']);
            $this->request->data['UploadFile']['name'] = $this->request->data['UploadFile']['file_upload']['2']['name'];
            $this->request->data['UploadFile']['size'] = $this->request->data['UploadFile']['file_upload']['2']['size'];
            $this->request->data['UploadFile']['URL'] = $this->request->data['UploadFile']['file_upload']['2']['tmp_name'];
            $this->request->data['UploadFile']['data'] = $fileData2;
            $this->UploadFile->save($this->request->data);
            }

I want to insert 3 files data in to database, but I get only one file data.

and result :

1   INSERT INTO `kontaktid`.`upload_files` (`name`, `size`, `URL`) VALUES ('add.JPG', 61020, 'C:\\wamp\\tmp\\php75DF.tmp')
2   SELECT COUNT(*) AS `count` FROM `kontaktid`.`upload_files` AS `UploadFile` WHERE `UploadFile`.`id` = 34
3   SELECT COUNT(*) AS `count` FROM `kontaktid`.`upload_files` AS `UploadFile` WHERE `UploadFile`.`id` = 34
4   SELECT COUNT(*) AS `count` FROM `kontaktid`.`upload_files` AS `UploadFile` WHERE `UploadFile`.`id` = 34
5   UPDATE `kontaktid`.`upload_files` SET `name` = 'empty rows.JPG', `size` = 73534, `URL` = 'C:\\wamp\\tmp\\php75F0.tmp' WHERE `kontaktid`.`upload_files`.`id` = '34'
6   SELECT COUNT(*) AS `count` FROM `kontaktid`.`upload_files` AS `UploadFile` WHERE `UploadFile`.`id` = 34
7   SELECT COUNT(*) AS `count` FROM `kontaktid`.`upload_files` AS `UploadFile` WHERE `UploadFile`.`id` = 34 
8   SELECT COUNT(*) AS `count` FROM `kontaktid`.`upload_files` AS `UploadFile` WHERE `UploadFile`.`id` = 34
9   UPDATE `kontaktid`.`upload_files` SET `name` = 'vardump.JPG', `size` = 79107, `URL` = 'C:\\wamp\\tmp\\php75F1.tmp' WHERE `kontaktid`.`upload_files`.`id` = '34'

Thanks for helping !

Upvotes: 1

Views: 95

Answers (1)

Miheretab Alemu
Miheretab Alemu

Reputation: 976

for every save, you should use $this->UploadFile->create();, other wise it will only save one. so it'd be like this:

        if (!empty($this->request->data) && is_uploaded_file($this->request->data['UploadFile']['file_upload']['0']['tmp_name'])) {
        $fileData = fread(fopen($this->request->data['UploadFile']['file_upload']['0']['tmp_name'], "r"), $this->request->data['UploadFile']['file_upload']['0']['size']);
        $this->request->data['UploadFile']['name'] = $this->request->data['UploadFile']['file_upload']['0']['name'];
        $this->request->data['UploadFile']['size'] = $this->request->data['UploadFile']['file_upload']['0']['size'];
        $this->request->data['UploadFile']['URL'] = $this->request->data['UploadFile']['file_upload']['0']['tmp_name'];
        $this->request->data['UploadFile']['data'] = $fileData;
        $this->UploadFile->create();
        $this->UploadFile->save($this->request->data);
        }
        if (!empty($this->request->data) && is_uploaded_file($this->request->data['UploadFile']['file_upload']['1']['tmp_name'])) {
        $fileData1 = fread(fopen($this->request->data['UploadFile']['file_upload']['1']['tmp_name'], "r"), $this->request->data['UploadFile']['file_upload']['1']['size']);
        $this->request->data['UploadFile']['name'] = $this->request->data['UploadFile']['file_upload']['1']['name'];
        $this->request->data['UploadFile']['size'] = $this->request->data['UploadFile']['file_upload']['1']['size'];
        $this->request->data['UploadFile']['URL'] = $this->request->data['UploadFile']['file_upload']['1']['tmp_name'];
        $this->request->data['UploadFile']['data'] = $fileData1;
        $this->UploadFile->create();
        $this->UploadFile->save($this->request->data);
        }
        if (!empty($this->request->data) && is_uploaded_file($this->request->data['UploadFile']['file_upload']['2']['tmp_name'])) {
        $fileData2 = fread(fopen($this->request->data['UploadFile']['file_upload']['2']['tmp_name'], "r"), $this->request->data['UploadFile']['file_upload']['2']['size']);
        $this->request->data['UploadFile']['name'] = $this->request->data['UploadFile']['file_upload']['2']['name'];
        $this->request->data['UploadFile']['size'] = $this->request->data['UploadFile']['file_upload']['2']['size'];
        $this->request->data['UploadFile']['URL'] = $this->request->data['UploadFile']['file_upload']['2']['tmp_name'];
        $this->request->data['UploadFile']['data'] = $fileData2;
        $this->UploadFile->create();
        $this->UploadFile->save($this->request->data);
        }

Hope it helps!

Upvotes: 1

Related Questions