Beispiel #1
0
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'))
Beispiel #2
0
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'))