Hi Simone,
It really is a PDF file (I checked)! It´s a legacy database, the blob field
was not filled by DAL, but by another system (in Java). I guess a base64
decode is going on incorrectly when the DAL reads the database. I tried to
replace the Field type parameter from 'blob' to 'SQLCustomType', but it
didnt work. It doenst read the field's value from DB.
Field("lb_documento", "blob")
Field("lb_documento", type=SQLCustomType(type='string', native='blob'))
In the first declaration the field came "base64 decoded". When using the
second one, the blob field is not read from DB.
Do you know any way to read a native blob field using DAL without decode it
?
Thanks a lot,
Fred
Em segunda-feira, 18 de novembro de 2013 12h53min39s UTC-3, Niphlod
escreveu:
>
> you were the one saying that the column hold the content of the pdf file
> ^_^
> DAL uses base64 to put the contents in.....
> If you need to convert from base64, use a StringIO and then fill it with
> the decoded value, and stream that one.
>
> Simone
>
> On Monday, November 18, 2013 4:05:49 PM UTC+1, Fred Guedes Pereira wrote:
>>
>> Hi Niphlod,
>>
>> It worked! No need for StringIO. I just returned the blob field as the
>> http response content. The code:
>>
>> def pdfdoc():
>> evento = session._eventos[int(request.args(0))] or
>> redirect(URL('eventos'), args=request.args(0))
>> response.headers['Content-Type'] = 'application/pdf'
>> response.headers['Content-Disposition'] = 'attachment;
>> filename="teste.pdf"'
>> return evento['lb_documento'] #lb_documento is a blob field in an
>> Oracle DB, mapped with a 'blob' type with DAL
>>
>> BUT (always have a but!), the blob content (PDF) seems to be encoded.
>> When I open the resulting downloaded file it is not recognized as a PDF
>> file. I put a print just after retrieve the field from DB and it seems
>> enconded (base64?). But it´s another problem.
>>
>> Fred
>>
>> Em quinta-feira, 14 de novembro de 2013 14h21min37s UTC-3, Fred Guedes
>> Pereira escreveu:
>>>
>>> Hello,
>>>
>>> Is there a way to return PDF content generated from a blob db field?
>>>
>>> My table has a blob field whose content is PDF. I would like to create a
>>> 'PDF page' from those bytes and return it.
>>>
>>> Thanks,
>>>
>>> Sorry for possible duplication.
>>>
>>> Fred
>>>
>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.