On 30.11.2003 13:22, Christian Haul wrote:

I have a big problem with Database reader. I'd like to make a common stuff - in the database I are stored binary files (table structure looks: (id, content, filename, mimetype) and I'd like to map url "file/234" on the accordant file. Remind, that in the database can be stored everything possible stuff (images, documents etc.).

I tried to use databasereader. All works ok, until I'd like to change mime-type to appropriate mime-type stored in the database. For this purpose should be used parameter "content-type". But it doesn't work and doesn't return regular value from database. It just returns that string, I inserted with parameter. It is correct? If so, how can I solve my problem? I tried this solution:

Usual select: "select content, mimetype from files where id=123 and status=1"

Using databasereader:

<map:match pattern="files/*">
  <map:read type="databasereader" src="{1}" mime-type="plain/text">
    <map:parameter name="table" value="files"/>
    <map:parameter name="image" value="content"/>
    <map:parameter name="key" value="id"/>
    <map:parameter name="where" value="status=1"/>


Please have a look at the javadocs. content-type sets a fixed mimetype
for the generated data while type-column specifies the column that
stores the mimetype. So change it to

<map:parameter name="type-column" value="mimetype"/>

BTW the upload sample in the databases block demos this usage.

If you have a look at the source code
http://cvs.apache.org/viewcvs.cgi/cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/reading/DatabaseReader.java?annotate=1.4#400


you will see that the mime-type is not taken from database, but the parameter value itself, i.e. 'mimetype'. If that's useful or not - I don't know. Maybe you can patch the databasereader.


No need to -- that has already been done :-)

Was this ternary operator already there yesterday? :-) I guess my look was to short ... Thanks for clarification.


Joerg


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to