REST requires a uniform interface, which in HTTP means restricting itself to GET, PUT, POST, DELETE, HEAD, etc.
One of the ways to check the correctness of each file in RESTful is to check the validation not as an action to execute in the file, but as an independent resource:
GET /file/{file-id}/validity
This can lead to a simple True / False or possibly a list of specific constraint violations. A file identifier can be a file name, an integer file number, a URL-encoded path, or possibly an uncoded path, for example:
GET /file/bob/dir1/dir2/somefile/validity
Another approach would be to request a list of invalid files:
GET /file/invalid
Nevertheless, it will prevent others from adding incorrect files to your service, first of all, i.e. when your service processes a PUT request with bad data:
PUT /file/{file-id}
he rejects it using HTTP 400 (Bad Request). The response body 400 may contain information about a specific error.
Update. To delete a file, you will of course use the standard HTTP REST verb:
DELETE /file/{file-id}
To process a file, does it create a new file (resource) from the downloaded one? For example, Flickr creates several different image files from each uploaded one, each with a different size. In this case, you can CALL the input file, and then initiate processing with the GET file of the corresponding output file:
PUT /file/input/{file-id} GET /file/output/{file-id}
If the processing is not nearly instantaneous, you can generate the output files asynchronously: every time a new input PUT file in the web service, the web service starts asynchronous activity, which ultimately leads to the output file being created.