2017-09-19 13 views
0

私は一般的にはPythonとプログラミングに慣れていません。Flask-uploads - 私はUploadNotAllowedエラーが発生し続ける

フォームフィールドバリデーターをOptional()に設定しても、私はUploadNotAllowedエラーが発生します。私の目標は、ユーザーがプロフィール写真をアップロードするかどうかを選択できるようにすることです。画像がアップロードされるように選択されている場合は、すべての設定がうまく機能します。 助けていただければ幸いです。ここで

は、フォームフィールドである:ここで

class SettingsForm(FlaskForm): 
     profile_pic = FileField('Profile Picture', validators= [Optional(), FileAllowed(images, 'Only images are allowed here')]) 

は私のviews.pyです:

if form.validate_on_submit(): 
    filename = images.save(request.files['profile_pic']) 
    current_user.profile_pic = images.url(filename) 

答えて

0

これはドキュメント(here)から少し編集されたバージョンです。これはまた、あなたのhtmlファイルに含めるべきことをいくつか思い出させます。

from flask_wtf import FlaskForm 
from flask_wtf.file import FileField, FileRequired 
from werkzeug.utils import secure_filename 

class PhotoForm(FlaskForm): 
    photo = FileField(validators=[Optional(), FileAllowed(images, 'Only images are allowed here')]) 

@app.route('/upload', methods=['GET', 'POST']) 
def upload(): 
    if form.validate_on_submit(): 
     f = form.photo.data 
     filename = secure_filename(f.filename) 
     #you can replace this with wherever you want to save your images    
     f.save(os.path.join(
       app.instance_path, 'photos', filename 
      )) 
     current_user.profile_pic = images.url(filename) 
     return redirect(url_for('index')) 

    return render_template('upload.html', form=form) 
+0

@smundlayさんのお返事ありがとうございます。これは私のために働いていない、私はこのエラーを取得しています:AttributeError: 'NoneType'オブジェクトに属性 'filename'がありません。私の推測はf.ファイル名のためでしょうか? – aharding378

関連する問題