On Oct 4, 2014 1:11 AM, "Joaquin Valdez" <joaquinfval...@gmail.com> wrote:

> Thanks Rick!  This is sure puzzling.
>
> When I first encountered this problem, I was not saving the file data in
> the database at all.  Rather, just the stats of the file (filename, size)
> in the Attachment table.  The file was stored on disk, then read and
> streamed back when requested by the AB.  This worked just fine for text
> files but not PDF’s or Excel files.
>
> Hmm….thanks for the direction.  I will keep digging.
>
> -Joaquin
>
>
>
>
> On Oct 3, 2014, at 12:28 PM, Rick Grashel <rgras...@gmail.com> wrote:
>
> Joaquin,
>
> I honestly think what is being temporarily persisted on disk (from the
> FileBean) is NOT exactly matching what is being put into the DB.
>
> A couple of things here.  First, converting file blobs for DB storage can
> be very sensitive.  I had all sorts of issues going from FileBeans on the
> file system to byte arrays where there would be mysterious paddings of null
> (char(0)) that would be missing.  Almost like it was a native filesystem
> block/page issue or a filesystem metadata issue.  Some of the file formats
> are very sensitive to even padded nulls at the end or beginning of their
> file.
>
> Another problem I've had before is the JDBC driver itself not persisting
> the BLOBs properly if my DAO code was using setBlob() rather than
> setBinaryStream().  I'm not sure what Stripersist uses behind the scenes,
> but that is also something to check.  But for safety, setBinaryStream()
> should be used.  I've never had a problem with it.  Even if you end up
> using Stripersist to store the attachment (without the blob) and then do a
> manual JDBC call for the binary stream... you should do that.
>
> The other possibility (if these are very large files) is to first insert
> the attachment metadata/object using Stripersist/JPA (without the blob) and
> then create a native OS Executor to execute your DB command-line utility to
> import the file into the Blob column.  For MySQL, that would look something
> like "update attachment set data = LOAD_FILE( '/path/to/file');'
>
> So those are some ideas to try out.  Good luck.
>
> -- Rick
>
>
> On Fri, Oct 3, 2014 at 10:41 AM, Joaquin Valdez <joaquinfval...@gmail.com>
> wrote:
>
>> Thanks Rick!
>>
>> To read using BaseDaoImpl:
>>
>>   @Override
>>     public T read(ID id) {
>>
>>         return Stripersist.getEntityManager().find(getEntityClass(), id);
>>     }
>>
>>
>>
>>
>> To store the attachment:
>>
>>   private void addAttachment(FileBean fileBean) throws IOException {
>>         Attachment attachment = new Attachment();
>>         attachment.setFileName(fileBean.getFileName());
>>         attachment.setContentType(fileBean.getContentType());
>>         attachment.setFilesize(fileBean.getSize());
>>
>>         byte[] data = new byte[(int) fileBean.getSize()];
>>         InputStream in = fileBean.getInputStream();
>>         in.read(data);
>>         attachment.setData(data);
>>
>>         attachment.setIns(getIns());
>>         attachmentDao.save(attachment);
>>         attachmentDao.commit();
>>         attachment = attachmentDao.read(attachment.getId());
>>         fileBean.save(new File(attachmentDao.getFilePath(attachment)));
>>         getIns().getAttachments().add(attachment);
>>     }
>>
>>
>> Thank you,
>> Joaquin
>>
>>
>>
>> On Oct 3, 2014, at 6:31 AM, Rick Grashel <rgras...@gmail.com> wrote:
>>
>> What does the code look like in AttachmentDAO.read( id )?  Also, what
>> does the code look like that stores the attachment when it is uploaded?
>>
>> -- Rick
>>
>> On Fri, Oct 3, 2014 at 8:16 AM, Joaquin Valdez <joaquinfval...@gmail.com>
>> wrote:
>>
>>> Hello!
>>>
>>> I seem to have trouble with the results of downloading an Excel
>>> spreadsheet (XLS or XSLX) file using the following code:
>>>
>>>  public Resolution getAttachment() {
>>>
>>>         Attachment attachment = attachmentDao.read(getAttachId());
>>>         if (attachment.getIns().getId().equals(getIns().getId())) {
>>>                 return new StreamingResolution
>>>                 (attachment.getContentType(), new
>>> ByteArrayInputStream(attachment.getData()))
>>>                     .setFilename(attachment.getFileName());
>>>         }
>>> }
>>>
>>> The upload appears to happen just fine as I am able to open up the
>>> uploaded file and it renders like it should.  The downloaded file appears
>>> garbled.  Attached is an image of the mess in Apple Numbers and it looks
>>> Similar in Libre Office.
>>>
>>> Any help or ideas would be appreciated!
>>>
>>> Thanks,
>>> Joaquin
>>>
>>>
>>> <Screen Shot 2014-10-03 at 6.14.30 AM.png>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
>>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
>>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>>>
>>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>>> _______________________________________________
>>> Stripes-users mailing list
>>> Stripes-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/stripes-users
>>>
>>>
>>
>> ------------------------------------------------------------------------------
>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk_______________________________________________
>> Stripes-users mailing list
>> Stripes-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/stripes-users
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>> _______________________________________________
>> Stripes-users mailing list
>> Stripes-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/stripes-users
>>
>>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk_______________________________________________
> Stripes-users mailing list
> Stripes-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/stripes-users
>
>
>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> Stripes-users mailing list
> Stripes-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/stripes-users
>
>
------------------------------------------------------------------------------
Slashdot TV.  Videos for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
Stripes-users mailing list
Stripes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to