code: function uploadFile(data, callback) {
        this.debug('uploadFile', data);
  
        var self = this;
  
        /**
         * Handle Upload Callback
         *
         * @param error
         * @param response
         * @returns {*}
         */
        function uploadCallback(error, response) {
  
          // If the user does not have the uploadFiles cap.
          if (error && error.code === 401) {
            return callback.call(self, null, { ok: false, id: response.id, message: error.faultString, error: error });
          }
  
          // File upload failure.
          if (error && error.code === 500) {
            return callback.call(self, null, { ok: false, id: response.id, message: error.faultString, error: error });
          }
  
          if (!error && response) {
            return callback.call(self, null, { ok: true, id: parseInt(response.id), file: response.file, url: response.url, type: response.type });
          }
          // Unhandled.
          callback(null, { ok: false, id: response.ID, data: data, error: error });
        }
  
        //data.bits = new Buffer(data.bits, 'base64');
        this.methodCall('wp.uploadFile', [ this.get('blog'), this.get('username'), this.get('password'), data ], uploadCallback);
  
        return this;
  
      }
docs: Get Client Methods.
  
  Seems to fail completely when "Name" is not a valid filename..?
  
  ### Notes
  * Uses "wp.uploadFile" RPC EP.
  
  ### Returns
  * id
  * file
  * url
  * type
  
  @param data            {Object}
  @param data.name       {String}
  @param data.type       {String}
  @param data.bits       {String}
  @param data.overwrite  {Boolean}
  @param data.post_id    {Integer} Optional ID of parent post.
  @param callback        {Function}
  @returns {*}