Ответ 1
Мне просто нужно было вызвать .save на form.fileName.file.save
myFile = secure_filename(form.fileName.file.filename)
form.fileName.file.save(PATH+myFile)
В моем файле forms.py у меня есть
class myForm(Form):
fileName = FileField()
В моем файле views.py у меня есть
form = myForm()
if form.validate_on_submit():
fileName = secure_filename(form.fileName.file.filename)
В моем .html файле у меня есть
{% block content %}
<form action="" method="post" name="simple" enctype="multipart/form-data">
<p>
Upload a file
{{form.fileName()}}
</p>
<p><input type="submit" value="Submit"></p>
</form>
{% endblock %}
и, похоже, работает, когда я нажимаю submit, но файл не находится ни в одном из каталогов проектов.
Мне просто нужно было вызвать .save на form.fileName.file.save
myFile = secure_filename(form.fileName.file.filename)
form.fileName.file.save(PATH+myFile)
Вы посмотрели на это:
http://flask.pocoo.org/docs/patterns/fileuploads/#uploading-files
Вы должны установить несколько конфигураций, таких как UPLOAD_FOLDER и т.д. Вам также нужно вызвать функцию save(), которую я не вижу в вашем опубликованном коде для views.py.
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
В файле form.fileName.ll вызовите '.save'.
filename = secure_filename(form.fileName.file.filename)
file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
form.fileName.file.save(file_path)
Обязательно используйте secure_filename(), чтобы пользователи не могли помещать плохие имена файлов, например "../../../../home/username/.bashrc".
Использование os.path.join будет генерировать правильный абсолютный путь независимо от того, на какой ОС вы находитесь.