file upload using Webservice
$_FILES is


  An associative array of items uploaded to the current script via the HTTP POST method.


file_save_upload() takes as its first parameter


  A string specifying the filepath or URI of the uploaded file to save.


Your code essentially does this

$file = file_save_upload($_FILES, $validators, 'public://');


So you're currently passing an array to a function that's expecting a string. 

You're probably looking for something along the lines of

$file = file_save_upload($_FILES['file']['name'], $validators, 'public://');