Cameron,

to go further with debugging you can see that your exception is called in the file Abstract on line 948. Now simply output the destination directory on line 947 so you can see which directory you set.

Then check if the directory which is set there
* does exist
* has write access

Do this checks within your application as your user can have other rights than the webserver.

I am sure you will see where the problem is.

To note:
This is default debugging strategy... there is no magic ZF action or knowledge necessary. :-)

Greetings
Thomas Weidner, I18N Team Leader, Zend Framework
http://www.thomasweidner.com

----- Original Message ----- From: "Cameron" <themsel...@gmail.com>
To: "Thomas Weidner" <thomas.weid...@gmx.at>
Cc: "Zend Framework - General" <fw-general@lists.zend.com>
Sent: Wednesday, December 17, 2008 1:59 AM
Subject: Re: [fw-general] Unusual bug introduced with 1.7.1 in Zend_File.


here's the full $e.

http://pastebin.com/m5d442e15

the line in my code, line 83, that is definitely where it is calling
$adapter->getFileName().

On Tue, Dec 16, 2008 at 7:01 PM, Thomas Weidner <thomas.weid...@gmx.at>wrote:

Cameron,

when you have unexpected exceptions somewhere in your code it's always
usefull to get the whole exception and not only the rethrown content.

This would be really helpfull, not only for ZF but for every generic
problem where exceptions are thrown.

Greetings
Thomas Weidner, I18N Team Leader, Zend Framework
http://www.thomasweidner.com

----- Original Message ----- From: "Cameron" <themsel...@gmail.com>
To: "Thomas Weidner" <thomas.weid...@gmx.at>
Cc: "Zend Framework - General" <fw-general@lists.zend.com>
Sent: Tuesday, December 16, 2008 10:47 AM
Subject: Re: [fw-general] Unusual bug introduced with 1.7.1 in Zend_File.



Yeah ok, so that's all a bit messy/broken, but I've cleaned it up and it's
still doing the same thing:

here's the cleaned up code in a pastebin:

http://pastebin.com/m5bab1a44

the output is:

Array ( [0] => bbbThe given destination is no directory or does not exist
)

To test and make sure, i reverted to 1.7.0, still works fine.


On Tue, Dec 16, 2008 at 5:31 PM, Thomas Weidner <thomas.weid...@gmx.at
>wrote:

 Hy Cameron,

Why should the first catch, catch anything when there is a failure ?
According to manual, receive() returns a false on failure, not an
exception.

Also you are calling getFileName in any case, regardless if the form is
valid or not.

Greetings
Thomas Weidner, I18N Team Leader, Zend Framework
http://www.thomasweidner.com

----- Original Message ----- From: "Cameron" <themsel...@gmail.com>
To: "Zend Framework - General" <fw-general@lists.zend.com>
Sent: Tuesday, December 16, 2008 7:25 AM
Subject: [fw-general] Unusual bug introduced with 1.7.1 in Zend_File.



          if ($form->isValid($formData)) {

             //the form is valid, finish moving the file about

             $adapter = new Zend_File_Transfer_Adapter_Http();
             if ($adapter->isValid() === false) {
                 print_r($adapter->getMessages());
             }

             try {
                 $adapter->setDestination($path .
"/$src_class/$foreign_id")
                         ->receive();
             } catch (Exception $e) {
                 $errors[] = $e->getMessage();
             }
         }

         if (!$errors) {
             //if there are no errors with things so far, add a db
record.
             try {
                 $this->_model->add(array('foreign_id' => $foreign_id,
'filename' => $adapter->getFileName(), 'src_class' => $src_class, 'type'
=>
$formData['newform']['type']));
             }
             catch (Exception $e) {
                 $errors[] = $e->getMessage();
             }
         }


This works perfectly with 1.7.0, fails in 1.7.1 with a really odd
problem
-
it doesn't fail until the SECOND catch Exception, and the error it
returns
is "The given destination is no directory or does not exist", which it
most
certainly does because the file is being uploaded and moved in to place
just
fine, nor can I see how the setDestinaton method is being called by the
getFileName method?
This is all a bit too weird for me, I'm not really sure what's going on.
printing out variables as the setDestination method is being called
shows
a
perfectly fine path, and the file is being written... there's just this exception being thrown at some point. If one of you Zend guys has a good
place for me to start debugging this one from I'm more than happy to
help.








Reply via email to