def update_ref(id): # Данные о справочнике result = db_app.ref_data(id) if request.method == 'POST': # Проверка наличия файла if 'file' not in request.files: flash('Вы не указали файл для загрузки', 'danger') return redirect(request.url) file = request.files['file'] if file and allowed_file(file.filename): # Генерируется имя из идентификатора пользователя и врамени загрузки файла # Текущее время в сточку только цифрами filename = result[0][4] + '.xlsx' # Загружается файл file.save(os.path.join(constants.UPLOAD_FOLDER, filename)) # Имя обновляемой таблицы table_name = result[0][4] # Отчистка таблицы db_data.delete_from_table(table_name) # Открывается сохраненный файл rb = xlrd.open_workbook(constants.UPLOAD_FOLDER + filename) sheet = rb.sheet_by_index(0) # Запсиь строчек справочника в базу данных in_table = range(sheet.nrows) try: for rownum in in_table: if rownum >= 1: row = sheet.row_values(rownum) # Запсиь строчек справочника в базу данных db_data.insert_data_in_ref(table_name, row[0], row[1], row[2]) except: flash('Неверный формат данных в файле', 'danger') return redirect(url_for('update_ref')) # Удаление загруженного файла os.remove(constants.UPLOAD_FOLDER + filename) flash('Данные обновлены', 'success') return redirect(url_for('refs.ref', id=id)) else: flash( 'Неверный формат файла. Справочник должен быть в формате .xlsx', 'danger') return render_template('update_ref.html', form=form)
def post(self, userId): UPLOAD_FOLDER = 'static/users/'+str(userId)+'/images' parser = reqparse.RequestParser() #Adding arguments for imagefile and description parser.add_argument('file',type=werkzeug.datastructures.FileStorage, location='files') data = parser.parse_args() #Error if no file included if not request.files: abort(400)#bad request #Grab file from arguments photo = data['file'] #Split file name to get file type e.g. test.jpg filetype = (photo.filename).split(".")[1].lower() print(filetype) #return error if filetype is not permitted if not allowed_file(photo.filename): return make_response(jsonify({"error": "only allowed types: jpg, jpeg, png, gif"}),403) #If description is in request grab it for db try: #DB INSERT dbConnection = pymysql.connect( settings.DB_HOST, settings.DB_USER, settings.DB_PASSWD, settings.DB_DATABASE, charset='utf8mb4', cursorclass= pymysql.cursors.DictCursor) sql = 'insertProfileImage' sqlArgs = (userId, filetype) cursor = dbConnection.cursor() cursor.callproc(sql,sqlArgs) row = cursor.fetchone() dbConnection.commit() except: abort(500) finally: cursor.close() dbConnection.close() #Join image ID and Filetype to create filename, then save file filename = 'profile.'+ filetype try: photo.save(os.path.join(UPLOAD_FOLDER,filename)) except: abort(500) #Create a path to image to return to user path = UPLOAD_FOLDER +'/profile.' + filetype responsecode = 201 response = {"status": "success", "path": path } return make_response(jsonify(response),responsecode)
def advance_upload(): upload_obj = request.files.get('picture') # 验证文件类型 if upload_obj and allowed_file(upload_obj.filename): # 得到保存路径 path = os.path.join(current_app.config.get('UPLOAD_FOLDER'),upload_obj.filename) upload_obj.save(path) size = os.path.getsize(path) if size > current_app.config.get('ALLOWED_MAX_SIZE'): os.remove(path) return "文件大小不符合要求" else: return "文件不存在或类型不符合要求" return "高级上传"
def index(): if request.method == "POST": if request.form["sid"] == "" or request.form["token"] == "": flash("Twilio ID and token required") return redirect(request.url) sid = request.form["sid"] token = request.form["token"] if not tools.valid_credentials(sid, token): flash( "Invalid Twilio credentials. Please double check your Twilio account SID and token and try again" ) return redirect(request.url) if "file" not in request.files: flash("No file selected") return redirect(request.url) file = request.files["file"] if file.filename == "": flash("No file selected") return redirect(request.url) if file and tools.allowed_file(file.filename): filename = secure_filename(file.filename) file.save( os.path.join(application.config["UPLOAD_FOLDER"], filename)) number_list = tools.get_number_list(filename) wrong_numbers = tools.check_numbers(number_list, sid, token) if wrong_numbers: with open(settings.LOG_FILE, "a") as log_file: log_string = f"{datetime.now()} - {len(wrong_numbers)} wrong numbers identified." log_file.write(f"\n{log_string}") return render_template("wrong_numbers.html", number_list=wrong_numbers) number_list = tools.send_messages(number_list, sid, token) return render_template("report.html", number_list=number_list) else: flash("File type not allowed. Please select a CSV file") return redirect(request.url) return render_template("index.html")
def upload_data_area_from_file(id): global id_to_da id_to_da = id # Достаётся предметная область из базы по идентификатору data_area = db_app.data_area(id)[0] form = DataFile(request.form) if request.method == 'POST' and form.validate(): # Проверка наличия файла if 'file' not in request.files: flash('Вы не указали файл для загрузки', 'danger') return redirect(request.url) file = request.files['file'] type_of = form.type_of.data if file and allowed_file(file.filename): # Генерируется имя из идентификатора пользователя и врамени загрузки файла # Текущее время в сточку только цифрами filename = 'olap_'+ id + '.xls' # Загружается файл file.save(os.path.join(constants.UPLOAD_FOLDER, filename)) # Изменение статуса предметной области status = '2' log_id = db_app.insert_data_log(id, status) # Создание задачи в очереди на обработку db_queue.create_task(id, filename, type_of, session['user_id'], log_id[0][0]) flash('Данные добавлены и ожидают обработки', 'success') return redirect(url_for('data_areas.data_area', id=id)) else: flash('Неверный формат файла. Справочник должен быть в формате .xlsx', 'danger') return render_template('upload_data_area_from_file.html', form=form, data_area=data_area)
def upload_file(): if 'file' not in request.files: flash('No file part') return redirect('/') file = request.files['file'] if file and allowed_file(file.filename): epub = Epub.from_file(file) epub_file_ext = os.path.join(app.config['UPLOAD_FOLDER'], file.filename) file.save(epub_file_ext) find_cover(epub_file_ext) epub_file = os.path.splitext( os.path.join(app.config['UPLOAD_FOLDER'], secure_filename(file.filename)))[0] book = Book(secure_filename(file.filename.split('.')[0]), epub.title, epub.author) with zipfile.ZipFile(file, "r") as zip_ref: zip_ref.extractall(epub_file) db.session.add(book) db.session.commit() flash('Upload sucessful') else: flash('Epub only is allowed') return redirect('/')
def add_ref(): form = RefForm(request.form) if request.method == 'POST' and form.validate(): user = str(session['user_id']) name = form.name.data description = form.description.data # Проверка наличия файла if 'file' not in request.files: flash('Вы не указали файл для загрузки', 'danger') return redirect(request.url) file = request.files['file'] if file and allowed_file(file.filename): # Генерируется имя из идентификатора пользователя и врамени загрузки файла # Текущее время в сточку только цифрами now = ''.join(c for c in str(datetime.now()) if c not in '- :.') filename = 'ref_' + str(session['user_id']) + '_' + now + '.xlsx' # Загружается файл file.save(os.path.join(constants.UPLOAD_FOLDER, filename)) # Создаётся запись в базе данных # Генерируется имя для таблицы с данными table_name = str('ref' + str(session['user_id']) + now) try: # Создаётся запись в таблице с базой данных db_app.insert_ref(name, description, user, table_name) # Создаёется таблица для хранения данных db_data.create_ref_table(table_name) except psycopg2.Error as e: flash(e.diag.message_primary, 'danger') return redirect(request.url) # Открывается сохраненный файл rb = xlrd.open_workbook( os.path.abspath('.') + '/uploaded_files/' + filename) sheet = rb.sheet_by_index(0) # Запсиь строчек справочника в базу данных in_table = range(sheet.nrows) try: for rownum in in_table: if rownum >= 1: row = sheet.row_values(rownum) # Запсиь строчек справочника в базу данных db_data.insert_data_in_ref(table_name, row[0], row[1], row[2]) except: flash('Неверный формат данных в файле', 'danger') return redirect(url_for('add_ref')) # Удаление загруженного файла os.remove(os.path.join(constants.UPLOAD_FOLDER, filename)) flash('Справочник добавлен', 'success') return redirect(url_for('refs.refs')) else: flash( 'Неверный формат файла. Справочник должен быть в формате .xlsx', 'danger') return render_template('add_ref.html', form=form)
def upload_file(): if 'file' not in request.files: flash('No file submitted') return redirect( url_for("admin", COOKIES_NOTIFICATION=tools.show_cookies_policy(), LOGGED_IN=tools.is_logged_in())) else: file = request.files['file'] if file.filename == '': flash('No file submitted') return redirect(url_for("admin")) elif len(file.filename) > 100: flash('Filename is too long, must be less than 100 characters') return redirect( url_for("admin", COOKIES_NOTIFICATION=tools.show_cookies_policy(), LOGGED_IN=tools.is_logged_in())) try: user = db.get_user_with_email(session['email']) if not tools.allowed_file(file.filename): flash("File must have .csv extension!") return redirect( url_for('admin', CONFIRMED=db.is_confirmed(session['email']), FIRST_NAME=user['first_name'], SUBMITTED=user["file_submitted"], COOKIES_NOTIFICATION=tools.show_cookies_policy(), LOGGED_IN=tools.is_logged_in())) try: errors_in_file, file_df = tools.errors_in_submission_file(file) if len(errors_in_file) is not 0: flash("File contains errors, please fix them:") for error in errors_in_file: flash(error) return redirect( url_for( 'admin', CONFIRMED=db.is_confirmed(session['email']), FIRST_NAME=user['first_name'], SUBMITTED=user["file_submitted"], COOKIES_NOTIFICATION=tools.show_cookies_policy(), LOGGED_IN=tools.is_logged_in())) except Exception as e: flash("File contains errors, please fix them:") flash(str(e)) return redirect( url_for('admin', CONFIRMED=db.is_confirmed(session['email']), FIRST_NAME=user['first_name'], SUBMITTED=user["file_submitted"], COOKIES_NOTIFICATION=tools.show_cookies_policy(), LOGGED_IN=tools.is_logged_in())) if file: filename = secure_filename(file.filename) user_directory = app.config['UPLOAD_FOLDER'] + "/" + str( user["id"]) tools.delete_users_submission_directory(user_directory) os.makedirs(user_directory) file_df.to_csv(os.path.join(user_directory + "/", filename)) db.add_file_submitted(session["email"], filename) return redirect( url_for("admin", CONFIRMED=db.is_confirmed(session['email']), FIRST_NAME=user['first_name'], SUBMITTED=file.filename, COOKIES_NOTIFICATION=tools.show_cookies_policy(), LOGGED_IN=tools.is_logged_in())) except Exception as e: flash( "An issue has occurred, please try another time, or contact us at %s" % config.email_config["admin_email"]) return redirect( url_for('admin', COOKIES_NOTIFICATION=tools.show_cookies_policy(), LOGGED_IN=tools.is_logged_in()))