Since you were planning on using soap, I assume that you have a scriptable language on the client side?
I would write a non-soap script on the server side that takes two kinds of inputs. Request for file or confirmation of file received like this:
http://server/script.php?user=17&file=23&action=get
or
http://server/script.php?user=17&file=23&action=done
If the action is a get, then you hand out the file and log the request. To send the file, do this:
header("Content-Type: image/x-png");
$file = "/path/to/your/file.png";
@readfile($file);
If the action is done, then update the logged request as complete.
The client side will have a script (language unimportant) that is in this form:
1. request file
2. confirm file received
This will work fine as long as you have a scriptable language on the client side. PHP, ASP, Actionscript, and even Javascript would be fine. This won't work if the client side is running HTML in a web browser unless you provide a button that says, "Click here when you have received the file" but it doesn't sound like that's the situation here.