Source: web_service_upload_file.template.js

/***
 * Copyright 2015 RAPP
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Authors: Konstantinos Panayiotou
 * Contact: klpanagi@gmail.com
 *
 */


/**
 *  @author Konstantinos Panayiotou, [klpanagi@gmail.com]
 *
 *  @fileOverview
 *
 *  Illustrates the implementation of a HOP Service, a.k.a
 *  RAPP Platform Web Service, which accepts and handles file uploads.
 *
 */


/**
 *  Template RAPP Platform Web Service
 *
 *  This template web service has one input argument:
 *    file: Uploaded file.
 *
 *  This is the callback function that will be executed on request
 *  arrival and after successful authentication (If the web service requires
 *  authentication)

 *  The following arguments are passed to the web service implementation
 *  function:
 *
 *  @param req - The request object. Holds request information like
 *  body properties, file uploads, request headers, etc.
 *
 *  @param resp - The response object. Holds response methods used to send
 *  responses to the client.
 *
 *  @param ros - Use this object to call ROS Services.
 */
function template_web_svc(req, resp, ros) {
  var response = {
    error: ''
  };

  var fPath;

  try {
    /**
     *  Each req.files property is an array of the web service argument.
     *  This is due to the fact that multiple files can be uploaded using
     *  a single post field
     *
     *  For example, if we expect 2 files to be uploaded in a post field,
     *  named upFiles, you can access each one as below:
     *    var f1Path = req.files.upFiles[0]
     *    var f2Path = req.files.upFiles[1]
     *  Make sure to check on existence of those fields!!
     */
    fPath = req.files.file[0]
  }
  catch(e) {
    response.error('Did not receive any file uploads');
    resp.sendJson(response);
    return;
  }

  console.log("Uploaded file: " + fPath);
  resp.sendJson(response);
}


// Export the web service implementation function
module.exports = template_web_svc;