How to save images using Services 3
I had a requirement once like this where, using web service I have to create a node that will also save image. The following code uploads and saves image using web service.

// File validator.
$validators = array(
  /**
   * Defaults already allow png, jpg etc. If more needed to be supported,
   * edit here.
   */
  'file_validate_extensions' =&gt; array(),
  'file_validate_size' =&gt; array(),
);


foreach ($_FILES['files']['name'] as $field_name =&gt; $file_name) {
  // Save the file and get file object.
    $file = file_save_upload($field_name, $validators, file_default_scheme() . "://");

  // Check whether image is uploaded.
  if ($file-&gt;fid) {
    $node = new stdClass();
    $node-&gt;type = 'CONTENT_TYPE';
    $node-&gt;title = 'TITLE';
    $node-&gt;language = LANGUAGE_NONE;
    $node-&gt;uid = 'USER_UID';
    node_object_prepare($node);

    $node-&gt;field_custom[$node-&gt;language][0]['value'] = 'SOME_VALUE';
    // File upload here..
    $node-&gt;field_image[$node-&gt;language][0] = (array)$file;

    $node = node_submit($node);
    node_save($node);
  }
  else {                                                                      
    return services_error(t('File upload failed'), 406, t('File upload failed'));
  }
}


NOTE: Following code was tested using services 3. Also it was an iOS app that was consuming this web service, and it worked there.

NOTE: File uploaded with POST request.

I tested the above code using a Google Chrome plugin called REST Console. To install the plugin search for "rest console" in Chrome Web Store and install the first plugin you get in result (with up green and down blue arrow)

Hope this helps!