import os
from PIL import Image
from flask import Flask, request, redirect, url_for
from werkzeug import secure_filename
from flaskext.uploads import (UploadSet, configure_uploads, IMAGES,
UploadNotAllowed)
app = Flask(__name__)
app.config['UPLOADED_PHOTOS_DEST'] = '/tmp/testuploadext'
app.config['UPLOADED_APPLES_DEST'] = '/tmp/testuploadext2'
photos = UploadSet('photos', IMAGES)
configure_uploads(app, photos)
apples = UploadSet('apples', IMAGES)
configure_uploads(app, apples)
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST' and 'photo' in request.files:
filename = photos.save(request.files['photo'])
return redirect(url_for('upload_file', filename=filename))
return '''
<!doctype html>
<title>Upload New File</title>
<h1>Upload New File</h1>
<form enctype='multipart/form-data' action='' method='POST'>
<input type='file' name='photo'/>
<input type='submit' value='Upload'/>
</form>
'''
@app.route('/apple', methods=['GET', 'POST'])
def upload_file_apple():
if request.method == 'POST' and 'apple' in request.files:
filename = apples.save(request.files['apple'])
return redirect(url_for('upload_file_apple', filename=filename))
return '''
<!doctype html>
<title>Upload New File Apples</title>
<h1>Upload New File Apples</h1>
<form enctype='multipart/form-data' action='' method='POST'>
<input type='file' name='apple'/>
<input type='submit' value='Upload'/>
</form>
'''
with app.test_client() as c:
resp = c.get('/')
assert '<title>Upload New File</title>' in resp.data
apple='/media/Share/Pics/fucking-brilliant.jpeg'
img = Image.open(apple)
resp = c.post('/', data=dict(
photo='/media/Share/Pics/fucking-brilliant.jpeg'
), follow_redirects=True)
# How to test file uploading?
#assert 'photo' in request.files
flask upload file
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.