[Catalyst] Where is the form field lost?

Octavian Râşniţă orasnita at gmail.com
Mon Jan 25 09:30:06 GMT 2010


From: "Charlie Garrison" <garrison at zeta.org.au>
>Can you tell about those problems? I hope I won't create them in the 
>inflator I want to create.

I don't recall exactly, but IC::File had problems with multiple
'file' columns. I remember, the delete part was completely
broken if all files were not in the same directory. I was trying
to patch IC::File so that deleting would work; I was advised to
use IC::FS rather than trying to fix IC::File. (I don't recall
who said that, sorry.)



If I remember well, the algorithm for deletion made a single deletion and 
then did a last() thinking that if one file was deleted, all the files were 
deleted. I think there was a little comment there that tells that.
Although I didn't need to store the files in different dirs, I've noticed 
that that piece of code won't work in case of more directories used, however 
I don't think it is so hard to patch it for solving that issue.

Thank you for the code you sent. I will analyse it better to see if I can 
use another way, but what I would like to avoid is exactly to need writing 
too much code like this in order to use the module, so I don't want to need 
writing those wrappers for each file column nor a separate subroutine that 
provides the file name. But maybe I will be able to create one in the 
inflator...

However I am not sure the way InflateColumn::FS works is compatible with 
HTML::FormFu. I think a better way would be the style used by 
InflateColumn::File eventually with a more flexible storage, or 
InflateColumn::FS should be changed so it should get the ID of the row after 
it is stored in the DB.
But in the second case, I don't know how I could store the real file name 
and the random path to the file without using more fields in the table.

Anyway, back to the main issue, the biggest problem is HTTP::Body steals the 
file upload fields if no files were attached.

Octavian




More information about the Catalyst mailing list