1. #!/usr/bin/env python
  2.  
  3. from circuits.web import Server, Controller, Static ,expose
  4. from circuits import handler, Component, Debugger
  5. from circuits.web.errors import Forbidden
  6. from time import gmtime, strftime
  7.  
  8.  
  9.  
  10.  
  11. class Root(Controller):
  12. @expose("hi.html")
  13. def hi(self):
  14. fileHandle = open ( 'hi.html' )
  15. return """<script type="text/JavaScript">
  16. <!--
  17. function timedRefresh(timeoutPeriod) {
  18. setTimeout("location.reload(true);",timeoutPeriod);
  19. }
  20. // -->
  21. </script><body onload="JavaScript:timedRefresh(3000);"> %s""" % fileHandle.read()
  22. fileHandle.close()
  23. def index(self, file=None,*args, **kwargs):
  24. if file is None:
  25. input = kwargs.get("input", None)
  26. if input != None:
  27. if len(input) > 0:
  28. if kwargs.get("type", None) == "write":
  29. fileHandle = open ( 'hi.html','w' )
  30. fileHandle.write("Name: %s </br> %s" % (kwargs.get("name", None) ,input))
  31. fileHandle.close()
  32. log = open("log", "a")
  33. log.write("At %s IP: %s , Name: %s Posted : %s \n" % ( strftime("%Y-%m-%d %H:%M:%S", gmtime()) , self.request.remote.ip ,kwargs.get("name", None) , input))
  34. log.close()
  35. elif kwargs.get("type", None) == "append":
  36. fileHandle = open ( 'hi.html')
  37. file = fileHandle.read()
  38. fileHandle.close()
  39. fileHandle = open ( 'hi.html','w' )
  40. fileHandle.write("Name: %s </br> %s <hr /> %s" % (kwargs.get("name", None) ,input,file))
  41. fileHandle.close()
  42. log = open("log", "a")
  43. log.write("At %s IP: %s , Name: %s Posted : %s \n" % ( strftime("%Y-%m-%d %H:%M:%S", gmtime()) , self.request.remote.ip ,kwargs.get("name", None) , input))
  44. log.close()
  45. return """<body><form method="POST" action="/" enctype="multipart/form-data">
  46. Upload Image<input type="file" name="file">
  47. <input type="submit" value="Submit">
  48. </form><iframe src="hi.html" height = "500" width = "1000"> </iframe>
  49.  
  50. <form name="input" action="" method="get">
  51. Name:<input type="text" name="name" /></br><textarea rows="4" cols="120" name="input">
  52. </textarea>
  53. <input type="radio" name="type" value="write" checked/> New
  54. <input type="radio" name="type" value="append" /> Add
  55. <input type="submit" value="Write" />
  56. </form></body>"""
  57. else:
  58. filename = "./img/%s" % file.filename
  59. gee = open(filename, "w+")
  60. gee.write(file.value)
  61. return "<a href=%s >img </a>" % (filename)
  62.  
  63.  
  64. (Server(("0.0.0.0", 8001)) + Debugger(events=False, errors=True) + Static(docroot="img") + Root()).run()
  65.