您的位置:首页 > 其它

flask upload file

2016-03-22 08:27 330 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: