Sig*_*ils 13 python flask flask-restful
我想知道如何通过创建API服务上传文件?
class UploadImage(Resource):
def post(self, fname):
file = request.files['file']
if file:
# save image
else:
# return error
return {'False'}
Run Code Online (Sandbox Code Playgroud)
路线
api.add_resource(UploadImage, '/api/uploadimage/<string:fname>')
Run Code Online (Sandbox Code Playgroud)
然后是HTML
<input type="file" name="file">
Run Code Online (Sandbox Code Playgroud)
我在服务器端启用了CORS
我使用angular.js作为前端和ng-upload,如果这很重要,但也可以使用CURL语句!
Sib*_*ini 15
class UploadWavAPI(Resource):
def post(self):
parse = reqparse.RequestParser()
parse.add_argument('audio', type=werkzeug.FileStorage, location='files')
args = parse.parse_args()
stream = args['audio'].stream
wav_file = wave.open(stream, 'rb')
signal = wav_file.readframes(-1)
signal = np.fromstring(signal, 'Int16')
fs = wav_file.getframerate()
wav_file.close()
Run Code Online (Sandbox Code Playgroud)
您应该处理流,如果它是一个wav,上面的代码可以工作.对于图像,您应该存储在数据库中或上传到AWS S3或Google Storage
Ron*_*lev 15
以下内容足以保存上传的文件
from flask import Flask
from flask_restful import Resource, Api, reqparse
import werkzeug
class UploadAudio(Resource):
def post(self):
parse = reqparse.RequestParser()
parse.add_argument('file', type=werkzeug.datastructures.FileStorage, location='files')
args = parse.parse_args()
audioFile = args['file']
audioFile.save("your_file_name.jpg")
Run Code Online (Sandbox Code Playgroud)
以下代码的内容应该有所帮助.
@app.route('/upload', methods=['GET', 'POST'])
def upload():
if request.method == 'POST':
file = request.files['file']
extension = os.path.splitext(file.filename)[1]
f_name = str(uuid.uuid4()) + extension
file.save(os.path.join(app.config['UPLOAD_FOLDER'], f_name))
return json.dumps({'filename':f_name})
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用烧瓶中的请求
class UploadImage(Resource):
def post(self, fname):
file = request.files['file']
if file and allowed_file(file.filename):
# From flask uploading tutorial
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return redirect(url_for('uploaded_file', filename=filename))
else:
# return error
return {'False'}
Run Code Online (Sandbox Code Playgroud)
http://flask.pocoo.org/docs/0.12/patterns/fileuploads/