C. It should use request.form instead of request.files
D. It uses an unsafe filename directly
Solution
Step 1: Identify filename safety issue
Using file.filename directly can allow unsafe paths or characters.
Step 2: Recommend using secure_filename
To avoid security risks, filenames must be sanitized before saving.
Final Answer:
It uses an unsafe filename directly -> Option D
Quick Check:
Always sanitize filenames before saving [OK]
Hint: Always use secure_filename before saving files [OK]
Common Mistakes:
Not checking if file exists before saving
Saving files without sanitizing filename
Confusing request.form with request.files
5. You want to allow users to upload only PNG images and save them safely in Flask. Which code snippet correctly implements this?
hard
A. file = request.files['image']
if file and file.filename.endswith('.png'):
filename = secure_filename(file.filename)
file.save(f"uploads/{filename}")
return 'PNG saved'
else:
return 'Invalid file'
B. file = request.files['image']
if file.filename:
file.save(file.filename)
return 'File saved'
else:
return 'No file'
C. file = request.files.get('image')
if file and file.filename:
filename = secure_filename(file.filename)
file.save(f"uploads/{filename}")
return 'File saved'
else:
return 'No file uploaded'
D. file = request.files['image']
if file and file.filename.endswith('.png'):
file.save(file.filename)
return 'PNG saved'
else:
return 'Invalid file'
Solution
Step 1: Check file presence and extension
file = request.files['image']
if file and file.filename.endswith('.png'):
filename = secure_filename(file.filename)
file.save(f"uploads/{filename}")
return 'PNG saved'
else:
return 'Invalid file' checks if file exists and filename ends with '.png' to allow only PNG files.
Step 2: Use secure_filename before saving
It sanitizes the filename to prevent security issues before saving.
Step 3: Return appropriate messages
Returns confirmation if saved, else an invalid file message.
Final Answer:
Option A correctly checks extension and uses secure_filename -> Option A
Quick Check:
Check extension + secure filename + save [OK]
Hint: Check extension and sanitize filename before saving [OK]
Common Mistakes:
Not sanitizing filename before saving
Not checking file extension properly
Saving files without checking if uploaded
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.