Using examples from tutorials cannot upload PNG #82

InvisibleTech opened this Issue May 24, 2012 · 3 comments


None yet

2 participants

All the code is at this gist, some is based on, and some is based on, and some more is based on this repo's docs.

My code:

Basically I can:

  • use Futon to upload a file - the PNG is viewable.
  • use the request npm to download the PNG it is viewable
  • upload the file PNG from my hard drive to Couch - I can view the PNG from Futon.
  • I cannot use the pipe to get the PNG from my couch server, and attach it to a new document as per the sample from Nuno's blog. The attachment only has 2 bytes and so is a broken PNG.

This happens on Windows XP and OS X 10.5.8

node version: v0.6.15
request version:  request@2.9.202
nano version: nano@3.0.5

couch: {"couchdb":"Welcome","version":"1.1.1"} on Win XP I think it is the same on OS X but I am not at that machine right now.

dscape commented May 24, 2012

Gist e9c4501d68f218ec739a

var request = require('request');
var fs = require('fs');


// Test #2 --> Pipe not working with nano --
// I only get 2 bytes of the image with this one, it is a bad PNG!
  var db      = require('nano')('http://localhost:5984/test');
  var request = require('request');

  // {} for empty body as parameter is required but will be piped in
    db.attachment.insert("piped-in", "piped_in.png", {}, "image/png")

// Test #3 --> Assumes you have run test #1 from same directory. 
// However, if I use the local file and post using nano... it works. 
//  Nano seems to be a-okay with file.
var db      = require('nano')('http://localhost:5984/test');
var fs = require('fs');

fs.readFile('logos_kronos.png', function(err, data) {
  if (!err) {
    db.attachment.insert('upload-from-fs', 'upload_from_fs.png', data, 'image/png',
      { }, function(err, body) {
        if (!err)
@dscape dscape closed this in baf3505 May 25, 2012
@dscape dscape added a commit that referenced this issue May 25, 2012
@dscape dscape [docs fix minor] fixes documentation
* error regarding #82
dscape commented May 25, 2012

Thanks for the bug report.

Everywhere you could see

    db.attachment.insert("new", "logo.png", {}, "image/png")

Should have been

    db.attachment.insert("new", "logo.png", null, "image/png")

Use null not {} when inserting attachments.

I've added this to the tests, to make sure it's properly tested going forward (it wasn't, hence the bad documentation and mistakes on my side)

dscape commented May 25, 2012

Also sorry for the inconvenience. I should have added this test earlier. Was lame on my behalf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment