Esempio n. 1
0
def Upload(request):
	if request.method != "POST":
		raise Http404
	if not request.FILES:
		if "cliptext" not in request.POST:
			raise Http404
	
	token = utils.gentoken()
	while os.path.isdir("/var/www/synchy.org/main/synchy-django/media/%s" % token):
		token = utils.gentoken()
	os.mkdir("/var/www/synchy.org/main/synchy-django/media/%s" % token)
	os.mkdir("/var/www/synchy.org/main/synchy-django/media/%s/files" % token)

	if not request.FILES:
		if 'cliptext' in request.POST:
			group = Group()
			group.token = token
			group.multi = False
			group.save()

			file = File()
			file.group = group
			file.name = "clipboard.txt"
			file.mime = "text/plain"
			file.save()

			data = request.POST['cliptext']
			handle = open("/var/www/synchy.org/main/synchy-django/media/%s/files/%s" % (token, file.name), 'w+')
			handle.write(data)
			handle.close()
		else:
			os.rmdir("/var/www/synchy.org/main/synchy-django/media/%s/files" % token)
			os.rmdir("/var/www/synchy.org/main/synchy-django/media/%s" % token)
			return Http404
	else:
		if len(request.FILES) != 1:
			os.rmdir("/var/www/synchy.org/main/synchy-django/media/%s/files" % token)
			os.rmdir("/var/www/synchy.org/main/synchy-django/media/%s" % token)
			raise Http404
		else:
			if 'file' in request.FILES:
				group = Group()
				group.token = token
				group.multi = False
				group.save()

				file = File()
				file.group = group
				file.name = request.FILES['file'].name
				file.mime = request.FILES['file'].content_type
				file.save()

				data = request.FILES['file'].read()
				handle = open("/var/www/synchy.org/main/synchy-django/media/%s/files/%s" % (token, file.name), 'w+')
				handle.write(data)
				handle.close()
			elif 'zip' in request.FILES:
				group = Group()
				group.token = token
				group.multi = True
				group.save()

				if request.FILES['zip'].content_type != "application/octet-stream":
					os.rmdir("/var/www/synchy.org/main/synchy-django/media/%s/files" % token)
					os.rmdir("/var/www/synchy.org/main/synchy-django/media/%s" % token)
					raise Http404

				data = request.FILES['zip'].read()
				handle = open("/var/www/synchy.org/main/synchy-django/media/%s/%s%s%s%s" % (token, "files-", token[:2], token[-2:], ".zip"), 'w+')
				handle.write(data)
				handle.close()

				os.system('cd "%s/var/www/synchy.org/main/synchy-django/media/%s/files/"; sudo jar -xf %s/var/www/synchy.org/main/synchy-django/media/%s/files-%s%s.zip' % (os.getcwd(), token, os.getcwd(), token, token[:2], token[-2:]))
				
				zfile = Zip()
				zfile.group = group
				zfile.name = "%s%s%s%s" % ("files-", token[:2], token[-2:], ".zip")
				zfile.save()

				mime = magic.Magic(mime=True)
				for name in os.listdir("/var/www/synchy.org/main/synchy-django/media/%s/files/" % token):
					file = File()
					file.group = group
					file.name = name
					file.mime = mime.from_file("/var/www/synchy.org/main/synchy-django/media/%s/files/%s" % (token, name))
					file.save()
			else:
				os.rmdir("/var/www/synchy.org/main/synchy-django/media/%s/files" % token)
				os.rmdir("/var/www/synchy.org/main/synchy-django/media/%s" % token)
				raise Http404
	
	return HttpResponse(token)