|
3 | 3 | """ |
4 | 4 | import os |
5 | 5 | import sys |
6 | | -#import asyncio |
| 6 | +# import asyncio |
7 | 7 | import json |
8 | 8 | import time |
9 | 9 | import traceback |
@@ -289,6 +289,48 @@ def stop_log(self, *args): # pylint: disable=invalid-name |
289 | 289 | self.response_message('stopLog', {'packetType': 'success', 'data': ''}) |
290 | 290 |
|
291 | 291 |
|
| 292 | +class UploadHandler(tornado.web.RequestHandler): |
| 293 | + def set_default_headers(self): |
| 294 | + self.set_header('Access-Control-Allow-Origin', '*') |
| 295 | + self.set_header('Access-Control-Allow-Headers', |
| 296 | + 'x-requested-with, authorization') |
| 297 | + self.set_header('Access-Control-Allow-Methods', |
| 298 | + 'POST, GET, PUT, DELETE') |
| 299 | + |
| 300 | + def get(self): |
| 301 | + self.write('some get') |
| 302 | + |
| 303 | + def post(self, *args, **kwargs): |
| 304 | + files = self.request.files |
| 305 | + uploaded_files = [] |
| 306 | + |
| 307 | + try: |
| 308 | + for inputname in files: |
| 309 | + http_file = files[inputname] |
| 310 | + for file_inst in http_file: |
| 311 | + file_path = os.path.join( |
| 312 | + resource.get_executor_path(), 'upgrade', file_inst.filename) |
| 313 | + |
| 314 | + with open(file_path, 'wb') as file_writer: |
| 315 | + file_writer.write(file_inst.body) |
| 316 | + |
| 317 | + uploaded_files.append( |
| 318 | + {'name': file_inst.filename, 'path': file_path}) |
| 319 | + self.write({ |
| 320 | + 'success': True, |
| 321 | + 'data': uploaded_files |
| 322 | + }) |
| 323 | + except: |
| 324 | + self.write({ |
| 325 | + 'success': False |
| 326 | + }) |
| 327 | + |
| 328 | + def options(self): |
| 329 | + # no body |
| 330 | + self.set_status(204) |
| 331 | + self.finish() |
| 332 | + |
| 333 | + |
292 | 334 | class MessageStore(object): |
293 | 335 | def __init__(self): |
294 | 336 | self.messages = Queue() |
@@ -330,8 +372,8 @@ class LoggerServerSentEvent(tornado.web.RequestHandler): |
330 | 372 |
|
331 | 373 | def __init__(self, *args, **kwargs): |
332 | 374 | super(LoggerServerSentEvent, self).__init__(*args, **kwargs) |
333 | | - #self.set_header('Content-Type', 'text/event-stream') |
334 | | - #self.set_header('Access-Control-Allow-Origin', '*') |
| 375 | + # self.set_header('Content-Type', 'text/event-stream') |
| 376 | + # self.set_header('Access-Control-Allow-Origin', '*') |
335 | 377 |
|
336 | 378 | def initialize(self, store): |
337 | 379 | ''' |
@@ -408,7 +450,7 @@ def listen(self): |
408 | 450 | target=self.detect_device_wrapper, args=(loop,)) |
409 | 451 | thread.start() |
410 | 452 |
|
411 | | - #self.non_main_ioloop = tornado.ioloop.IOLoop.current() |
| 453 | + # self.non_main_ioloop = tornado.ioloop.IOLoop.current() |
412 | 454 | # loop.run_forever() |
413 | 455 |
|
414 | 456 | def prepare_logger(self): |
@@ -524,7 +566,8 @@ def start_websocket_server(self): |
524 | 566 | application = tornado.web.Application( |
525 | 567 | [ |
526 | 568 | (r'/', WSHandler, dict(server=self)), |
527 | | - (r'/sse', LoggerServerSentEvent, dict(store=store)) |
| 569 | + (r'/sse', LoggerServerSentEvent, dict(store=store)), |
| 570 | + (r'/upload', UploadHandler) |
528 | 571 | ]) |
529 | 572 | self.http_server = tornado.httpserver.HTTPServer(application) |
530 | 573 | # self.http_server.listen(self.options.port) |
@@ -584,7 +627,7 @@ def detect_device_wrapper(self, current_loop): |
584 | 627 | asyncio.set_event_loop(asyncio.new_event_loop()) |
585 | 628 | # asyncio.set_event_loop(current_loop) |
586 | 629 |
|
587 | | - #self.non_main_ioloop = tornado.ioloop.IOLoop.current() |
| 630 | + # self.non_main_ioloop = tornado.ioloop.IOLoop.current() |
588 | 631 | self.detect_device(self.device_discover_handler) |
589 | 632 | except Exception as ex: |
590 | 633 | print_red(ex) |
|
0 commit comments