示例#1
0
文件: activity.py 项目: jcsy521/ydws
    def post(self):
        """Add an activity.
        """
        try:
            author = self.get_argument('author', '')
            title = self.get_argument('title', '')
            begintime = self.get_argument('begintime', 0)
            endtime = self.get_argument('endtime', 0)
            html_name = self.get_argument('html_name', '')
            filename = ''
            if self.request.files:
                upload_file = self.request.files['fileupload'][0]
                filename = safe_utf8(upload_file['filename'])
        except Exception as e:
            logging.exception("[ADMIN] Script upload failed, exception:%s",
                              e.args)
            status = ErrorCode.FAILED 
            self.write_ret(status) 
            return

        try:
            status = ErrorCode.SUCCESS 
            # check filename whether contains illegal character
            if filename:
                if not check_filename(filename):
                    status = ErrorCode.ACTIVITY_NAME_ILLEGAL
                    self.write_ret(status) 
                    logging.info("[ADMIN] filename: %s, Message: %s", 
                                 filename, ErrorCode.ERROR_MESSAGE[status])
                    return

                # check filename whether exists
                files = os.listdir(ACTIVITY_DIR_)
                for file in files:
                    if file == filename:
                        status = ErrorCode.ACTIVITY_EXISTED
                        logging.info("[ADMIN] filename: %s, Message: %s", 
                                     filename, ErrorCode.ERROR_MESSAGE[status])
                        self.write_ret(status) 
                        return

                file_path = os.path.join(ACTIVITY_DIR_, filename)
                logging.info("[ADMIN] Upload path: %s", file_path)
                output_file = open(file_path, 'w')
                output_file.write(upload_file['body'])
                output_file.close()

            self.db.execute("INSERT INTO T_ACTIVITY(title, filename,"
                            "  begintime, endtime, author, html_name)"
                            "VALUES(%s, %s, %s, %s, %s, %s)",
                            title, filename, begintime, endtime, author, html_name)
            logging.info("[ADMIN] %s upload %s file success.", author, filename)
            self.write_ret(status) 
        except Exception as e:
            status = ErrorCode.SERVER_BUSY
            logging.exception("[ADMIN] %s upload %s file failed. Exception:%s", 
                              author, filename, e.args)
            self.write_ret(status) 
示例#2
0
    def post(self):

        try:
            upload_file = self.request.files['fileupload'][0]
        except Exception as e:
            logging.info("[LOG] Script upload failed, exception:%s", 
                         e.args)
            global MESSAGE
            MESSAGE = '获取不到文件'
            self.redirect("/uploadluascript")
            return

        try:
            author = self.get_current_user()

            # check version
            records = self.acbdb.query("SELECT * "
                                       "  FROM T_SCRIPT"
                                       "  ORDER BY id DESC")
            version_list = [record.version for record in records]
            versionname = self.get_argument('versionname', '')
            if versionname in version_list:
                global MESSAGE
                MESSAGE = '该版本号已存在'
                logging.info("[LOG] Message: %s", MESSAGE)
                self.redirect("/uploadluascript")
                return

            # check filename whether contains illegal character
            filename = safe_utf8(upload_file['filename'])
            if not check_filename(filename):
                global MESSAGE
                MESSAGE = '文件名只能包含字母、数字、下划线、点'
                logging.info("[LOG] Message: %s", MESSAGE)
                self.redirect("/uploadluascript")
                return

            # check filename whether exists
            timestamp = int(time.time())
            localtime = time.strftime(
                '%Y-%m-%d %H:%M:%S', time.localtime(timestamp))
            files = os.listdir(DOWNLOAD_DIR_)
            for file in files:
                if file == filename:
                    global MESSAGE
                    MESSAGE = '文件已经存在,请先删除'
                    self.redirect("/uploadluascript")
                    return

            self.acbdb.execute("INSERT INTO T_SCRIPT(version, filename, timestamp, author)"
                               "VALUES(%s, %s, %s, %s)",
                               versionname, filename, timestamp, author)
            file_path = os.path.join(DOWNLOAD_DIR_, filename)
            logging.info("[LOG] Upload path: %s", file_path)
            output_file = open(file_path, 'w')
            output_file.write(upload_file['body'])
            output_file.close()

        except Exception as e:
            logging.info("[LOG] %s upload %s file fail at the time of %s Exception:%s", 
                         author, filename, localtime, e.args)
        else:
            logging.info("[LOG] %s upload %s file success at the time of %s", 
                         author, filename, localtime)
        self.redirect("/uploadluascript")
示例#3
0
文件: apk.py 项目: jcsy521/ydws
    def post(self):
        try:
            author = self.get_argument("author", "")
            versioncode = self.get_argument("versioncode", "")
            versionname = self.get_argument("versionname", "")
            versioninfo = self.get_argument("versioninfo", "")
            updatetime = self.get_argument("updatetime", "")
            category = int(self.get_argument("category", ""))
            filesize = self.get_argument("filesize", "")
            upload_file = self.request.files["fileupload"][0]
            filename = safe_utf8(upload_file["filename"])
        except Exception as e:
            logging.exception("[ADMIN] Apk upload failed, exception:%s", e.args)
            status = ErrorCode.FAILED
            self.write_ret(status)
            return

        try:
            status = ErrorCode.SUCCESS
            if not check_filename(filename):
                status = ErrorCode.ACTIVITY_NAME_ILLEGAL
                self.write_ret(status)
                logging.info("[ADMIN] filename: %s, Message: %s", filename, ErrorCode.ERROR_MESSAGE[status])
                return

            if category == UWEB.APK_TYPE.YDWS:  # 1
                filename_ = "ACB_%s.apk"
            elif category == UWEB.APK_TYPE.YDWQ_MONITOR:  # 2
                filename_ = "YDWQ_monitor_%s.apk"
            elif category == UWEB.APK_TYPE.YDWQ_MONITORED:  # 3
                filename_ = "YDWQ_monitored_%s.apk"
            elif category == UWEB.APK_TYPE.YDWS_ANJIETONG:  # 4
                filename_ = "YDWS_anjietong_%s.apk"

            filename = filename_ % versionname

            self.db.execute(
                "INSERT INTO T_APK(versioncode, versionname, versioninfo,"
                "  updatetime, filesize, author, category, filename) "
                "  VALUES(%s, %s, %s, %s, %s, %s, %s, %s)",
                versioncode,
                versionname,
                versioninfo,
                updatetime,
                filesize,
                author,
                category,
                filename,
            )

            file_path = os.path.join(APK_DIR_, filename)
            logging.info("[ADMIN] Upload path: %s", file_path)
            output_file = open(file_path, "w")
            output_file.write(upload_file["body"])
            output_file.close()
            logging.info("[ADMIN] %s upload %s file success.", author, filename)
            self.write_ret(status)
        except Exception as e:
            status = ErrorCode.SERVER_BUSY
            logging.exception("[ADMIN] %s upload %s file failed. Exception:%s", author, filename, e.args)
            self.write_ret(status)