
On Tue, May 18, 2010 at 9:29 AM, Clint Moore
On Mon, May 17, 2010 at 10:48 PM, Michael Snoyman
wrote: Clint, Firstly, would it be possible to modify your gist so that it's runnable on it's own? It's hard to debug what I can't see first hand. Secondly, I'm not certain I understand what you're saying the problem is. You mean that the file contents are simply "data"? Michael
I was referring to the file command on most unix-es to determine the file type by the magic number. Here's a better explanation:
a.png is the original image, and b.png is what I get back from the upload process.
$ file a.png b.png a.png: PNG image, 42 x 36, 8-bit colormap, non-interlaced b.png: data $ ls -l a.png b.png -rw-r--r-- 1 cmoore cmoore 611 2010-05-17 23:01 a.png -rw-r--r-- 1 cmoore cmoore 1020 2010-05-17 23:01 b.png $ md5sum a.png b.png 0116a68ff260fcce936b9a60c28a34d7 a.png 46e0b264fb5ab73aa2dfe8f3d40241c7 b.png
As far as making the code runnable, I can do that perhaps tomorrow. I'd love to just tar up the code, or push it to github or somesuch, but it's not mine. If I can't figure it out by then I'll write a one-off that demonstrates the problem and put it up.
In the hope that it spurs someone's 'oh yea, I remember that, you have to x when you y!' memory, here's what I know about the problem: I know that 1. It's almost certainly not the form used to submit the data because 2. The example file upload script on the haskell wiki works. This is what led me to assume that it wasn't a problem with encoding in ghc 6.12, but now I'm not so sure due to the differences in the file size above.
I feel compelled to point out that, as far as the data of the file is concerned, I'm not transforming it (at least my naive Haskell knowledge tels me I'm not). Whether I am writing it out to a file, or pushing it to s3, I'm still getting it from parseMultipart, and then from fileContent.
That said, it doesn't make sense that the problem would be web.encodings. It's obviously being used, and more importantly, working in other places. It just seems like the places I could be making a mistake are rather few. Which, hehe, again points to an encoding issue.
Thanks again for the help, and I will post it up tomorrow if I still haven't figured it out.
Sounds like Bulat already solved the problem... but here's a sample of using web-encodings. I recommend using parsePost instead of parseMultipart. Michael