def file_upload(): if request.method == 'POST': logger.info(request.form) form = FileUploadForm(CombinedMultiDict((request.files, request.form))) file = request.files.get('file') form.hash.data = hasher.hash(file) logger.info(form.hash.data) if form.validate(): logger.info('Form is valid') file.stream.seek(0) timestamp = int(datetime.datetime.now().timestamp()) filename = str(timestamp) + secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) logger.info(filename + ' Saved') db_file = File(name=form.upload_name.data, cve_number=form.cve_number.data, full_path=os.path.join(app.config['UPLOAD_FOLDER'], filename), description=form.description.data, file_type=form.upload_type.data, hash=form.hash.data) db.session.add(db_file) db.session.commit() # logger.info(str(db_file) + ' saved to db') flash('File Uploaded', 'success') else: # logger.info(form.errors) flash_form_errors(form) if request.referrer: return redirect(request.referrer) else: return redirect(url_for('index'))
def upload_file(login): form = FileUploadForm() form.validate() if len(form.file.errors) > 0: flash('Brak pliku do wysłania', category='alert-warning') return redirect(url_for('files')) token = create_upload_token(login) url = Config.FILE_STORE_URL + f'/files?user={login}&token={token}' files = {'file': (form.file.data.filename, form.file.data)} r = requests.post(url, files=files) if r.status_code == 200: flash('Plik został przesłany', category='alert-success') else: flash('Nie udało się przesłać pliku', category='alert-danger') return redirect(url_for('files'))