Too Many Zend_File_Transfer_Exceptions

I just installed Omeka on XAMPP with OSX. I keep getting error messages about the writability of files when I try to make any changes to my site. It says: “Zend_File_Transfer_Exception The given destination is not writable”

I’ve tried making a few of the files writable using Terminal but haven’t had any luck.

Any help would be greatly appreciated.

The traceback for that exception should give you at least a partial path for what the “destination” is. The two likely places are the temp directory, where files are first moved to, and the files/ directory and subdirectories, where they’re finally stored.

Thanks! So I’ve been able to find the destination using the traceback, but the error lists a number of files. Is there a way to make my omeka folder and all of its contents writable?

Well, the traceback will list a lot of Omeka files, but they’re not the destination and they don’t need to be writable. The destination will instead be in one of the arguments listed on one of the lines. You can post the whole thing if you’d like help identifying the relevant part(s).

Thanks, like I said, I’m pretty new at this, haha.

exception 'Zend_File_Transfer_Exception' with message 'The given destination is not writable' in /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/File/Transfer/Adapter/Abstract.php:1043
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Form/Element/File.php(512): Zend_File_Transfer_Adapter_Abstract->setDestination('/var/folders/w5...', 'logo')
#1 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/forms/ThemeConfiguration.php(113): Zend_Form_Element_File->setDestination('/var/folders/w5...')
#2 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/forms/ThemeConfiguration.php(69): Omeka_Form_ThemeConfiguration->_processFileElement(Object(Zend_Form_Element_File))
#3 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Form.php(239): Omeka_Form_ThemeConfiguration->init()
#4 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/controllers/ThemesController.php(52): Zend_Form->__construct(Array)
#5 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Controller/Action.php(516): ThemesController->switchAction()
#6 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('switchAction')
#7 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#8 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()
#9 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run()
#10 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Omeka/Application.php(79): Zend_Application->run()
#11 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/admin/index.php(28): Omeka_Application->run()
#12 {main}

It’s your temporary directory that’s the problematic one here: /var/folders/w5... (it’s only partially listed).

I’m not totally sure what the situation is with permissions and those temp directories on OS X. If need be, you can tell Omeka to use a different temporary directory of your choosing, and set the permissions on that instead. To do that, you’d add a line to your application/config/config.ini file:

storage.tempDir = "/your/temp/path"

Are there specific paths I should choose from or can it be anywhere?

If you’re setting it with storage.tempDir it can be anywhere you’d like: you just create the directory and put that path in the config file.

Hmm. I added it under the storage.adapter lines in the config file and got this error message:

exception 'Zend_File_Transfer_Exception' with message 'The given destination is not writable' in /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/File/Transfer/Adapter/Abstract.php:1043
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Form/Element/File.php(512): Zend_File_Transfer_Adapter_Abstract->setDestination('/var/folders/w5...', 'logo')
#1 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/forms/ThemeConfiguration.php(113): Zend_Form_Element_File->setDestination('/var/folders/w5...')
#2 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/forms/ThemeConfiguration.php(69): Omeka_Form_ThemeConfiguration->_processFileElement(Object(Zend_Form_Element_File))
#3 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Form.php(239): Omeka_Form_ThemeConfiguration->init()
#4 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/controllers/ThemesController.php(52): Zend_Form->__construct(Array)
#5 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Controller/Action.php(516): ThemesController->switchAction()
#6 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('switchAction')
#7 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#8 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()
#9 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run()
#10 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Omeka/Application.php(79): Zend_Application->run()
#11 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/admin/index.php(28): Omeka_Application->run()
#12 {main}

Can you paste in the relevant part of your config file? That error would indicate that your change didn’t take effect.

; Sample S3 cloud storage configuration
;
; The accessKeyId, secretAccessKey, and bucket options are all required.
; If the expiration option is set, files will be uploaded with “private”
; access, and Omeka will generate URLs that are only valid for a limited
; time. If the expiration option is missing or left commented out,
; uploaded files will always be publicly readable.
;
; storage.adapter = “Omeka_Storage_Adapter_ZendS3”
; storage.adapterOptions.accessKeyId =
; storage.adapterOptions.secretAccessKey =
; storage.adapterOptions.bucket =
; storage.adapterOptions.expiration = 10 ; URL expiration time (in minutes)
; storage.adapterOptions.endpoint = ; Custom S3 endpoint (optional)
; storage.tempDir = /users/zacharyhoffman/omeka

Looks like you just need to remove the semicolon at the start of the line – the ; comments out the line so it is ignored.

I made the change mentioned above but got another Zend File Transfer Exception error:

exception 'Zend_File_Transfer_Exception' with message 'The given destination is not writable' in /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/File/Transfer/Adapter/Abstract.php:1043
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Form/Element/File.php(512): Zend_File_Transfer_Adapter_Abstract->setDestination('/users/zacharyh...', 'logo')
#1 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/forms/ThemeConfiguration.php(113): Zend_Form_Element_File->setDestination('/users/zacharyh...')
#2 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/forms/ThemeConfiguration.php(69): Omeka_Form_ThemeConfiguration->_processFileElement(Object(Zend_Form_Element_File))
#3 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Form.php(239): Omeka_Form_ThemeConfiguration->init()
#4 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/controllers/ThemesController.php(52): Zend_Form->__construct(Array)
#5 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Controller/Action.php(516): ThemesController->switchAction()
#6 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('switchAction')
#7 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#8 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()
#9 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run()
#10 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/application/libraries/Omeka/Application.php(79): Zend_Application->run()
#11 /Applications/XAMPP/xamppfiles/htdocs/omeka-2.4.1/admin/index.php(28): Omeka_Application->run()
#12 {main}

Did you give your new folder permissions so that it’s writable by the server?

I seem to have really messed something up because now I can’t get the XAMPP servers to run.

I’m going to give MAMP a try.

Thank you both for your help.