[Catalyst] Where is the form field lost?
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
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.
More information about the Catalyst