Look for tinywebserver, it has an upload fuction.
It's based on the HTML command 'PUT'.
Altough PUT is a normal HTTP command, I found out that most webbrowser convert PUT into GET.
To bypass this, u can use Javasript, something like:
<script type="text/javascript">
// Create the communications object.
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// Set up the request to send data to the server.
// Make it synchronous, so we know how page rendering should proceed
async = false;
resource = "http://192.168.your webaddress";
data = "your file";
xmlhttp.open("PUT", resource, async);
xmlhttp.send(data);
</script>
If you find tinywebserver to complicated, you can also use Ladyada's sketch:
http://www.ladyada.net/learn/arduino/ethfiles.html, which is also often found on this forum.
In her sketch, you look for the GET command, but you can easily add a routine which looks for PUT.