# --------- upload_file.py ---------------- # upload binary file with pycurl by http post c = pycurl.Curl() c.setopt(c.POST, 1) c.setopt(c.URL, "http://127.0.0.1:8000/receive/") c.setopt(c.HTTPPOST, [("file1", (c.FORM_FILE, "c:\\tmp\\download\\test.jpg"))]) #c.setopt(c.VERBOSE, 1) c.perform() c.close() print "that's it ;)" # -------------------------------- # DJANGO RECEIVE TEST APPLICATION # -------------------------------- # --------- urls.py ---------------- from django.conf.urls.defaults import * urlpatterns = patterns('', (r'^receive/$', 'web.views.receive'), ) # --------- web\views.py ---------------- def receive(request): assert request.method=="POST" print "receive.META.SERVER_PORT", request.META["SERVER_PORT"], request.POST files = [] for multipart_name in request.FILES.keys(): multipart_obj = request.FILES[multipart_name] content_type = multipart_obj['content-type'] filename = multipart_obj['filename'] content = multipart_obj['content'] files.append((filename, content_type, content)) import datetime # write file to the system - add timestamp in the name file("c:\\tmp\\%s_%s" % (datetime.datetime.now().isoformat().replace(":", "-"), filename), "wb").write(content) fnames = ",".join([fname for fname, ct, c in files]) return HttpResponse("me-%s-RECEIVE-OK[POST=%s,files=%s]" % (request.META["SERVER_PORT"], request.POST.values(), fnames ))