Tuesday, July 3, 2012

Re: Get full path with file input ? (IMGUR related)

enctype="multipart/form-data" ?

http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options-for-create

HTH

Tarique

On Tue, Jul 3, 2012 at 4:36 PM, JonStark <jeanfau@gmail.com> wrote:
> Does someone has any clue ? Still stuck with this... thanks a lot.
>
> Le lundi 2 juillet 2012 12:47:06 UTC+2, JonStark a écrit :
>>
>> I'm trying to add a file upload to a form in cake 2.x :
>>
>> Controller :
>>
>>> public function add() {
>>>
>>> if ($this->request->is('post')) {
>>> $this->request->data['Post']['user_id'] =
>>> $this->Auth->user('id'); //stores user id
>>> $filename = $this->request->data['Post']['imgur'];
>>> $handle = fopen($filename, "r");
>>> $data = fread($handle, filesize($filename));
>>>
>>> // $data is file data
>>> $pvars = array('image' => base64_encode($data), 'key' =>
>>> 'a2b334c7cb5353ae110aea1d7d51b91e');
>>> $timeout = 30;
>>> $curl = curl_init();
>>>
>>> curl_setopt($curl, CURLOPT_URL,
>>> 'http://api.imgur.com/2/upload.xml');
>>> curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
>>> curl_setopt($curl, CURLOPT_POST, 1);
>>> curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
>>> curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
>>>
>>> $xml = curl_exec($curl);
>>>
>>> curl_close ($curl);
>>>
>>> debug($xml);
>>> if ($this->Post->save($this->request->data)) {
>>> $this->Session->setFlash('Your post has been saved.');
>>> $this->redirect(array('controller' => 'users', 'action'
>>> => 'timeline', $this->Auth->user('username')));
>>> } else {
>>> $this->Session->setFlash('Unable to add your post.');
>>> }
>>> }
>>> }
>>
>>
>> Form :
>>
>>> <form class="form-inline" action="/manager/posts/add" method="post"
>>> style="margin-bottom: 0px;">
>>> <input type="text" name="data[Post][game_name]"
>>> class="input" id="game_name" style="width:250px;">
>>> <button type="submit" class="btn btn-primary"><i class="icon-ok
>>> icon-white"></i></button>
>>> <input type="file" name="data[Post][imgur]" id="imgur" value="" />
>>>
>>> </form>
>>
>>
>>
>> This should work wel, except cake send only the file name, not the full
>> path, so it's not uploaded to imgur :
>>
>> Warning (2): fopen(picture.png) [function.fopen]: failed to open stream:
>> No such file or directory [APP/Controller/PostsController.php, line 23]
>>
>>
>> Any idea on how to make it work ? Perhaps with a temp folder ?
>>
>> Thanks a lot !
>
> --
> Our newest site for the community: CakePHP Video Tutorials
> http://tv.cakephp.org
> Check out the new CakePHP Questions site http://ask.cakephp.org and help
> others with their CakePHP related questions.
>
>
> To unsubscribe from this group, send email to
> cake-php+unsubscribe@googlegroups.com For more options, visit this group at
> http://groups.google.com/group/cake-php



--
=============================================================
PHP for E-Biz: http://sanisoft.com
=============================================================

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: