2017-09-19 10 views
0

저는 일반적으로 파이썬과 프로그래밍에 익숙하지 않습니다.플라스크 업로드 - 계속 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.filename 때문에 내 생각 엔? – aharding378