服务端上传图片
1. 环境准备
操作系统:Windows/Linux/MacOS
编程语言:Python(使用Flask框架)
库和工具:requests, Flask, Pillow (PIL)
2. 安装必要的库
pip install Flask Pillow requests
3. 创建Flask应用
在项目目录下创建一个名为app.py
的文件,并写入以下代码:
from flask import Flask, request, jsonify from PIL import Image import io app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload_file(): if 'file' not in request.files: return jsonify({"error": "No file part"}), 400 file = request.files['file'] if file.filename == '': return jsonify({"error": "No selected file"}), 400 try: image = Image.open(io.BytesIO(file.read())) image.verify() # verify that it is, in fact, an image image.save("uploaded_images/" + file.filename) return jsonify({"message": "File successfully uploaded", "filename": file.filename}), 200 except (IOError, SyntaxError) as e: return jsonify({"error": str(e)}), 400 if __name__ == '__main__': app.run(debug=True)
4. 创建上传目录
确保存在一个名为uploaded_images
的目录用于存储上传的图片,如果没有,请手动创建:
mkdir uploaded_images
5. 运行Flask应用
在终端中运行以下命令启动Flask服务器:
python app.py
6. 测试上传功能
可以使用Postman或curl来测试文件上传功能,使用curl命令:
curl -X POST -F "file=@path_to_your_image.jpg" http://127.0.0.1:5000/upload
相关问题与解答
问题1:如何更改图片保存的路径?
答:要更改图片保存的路径,只需修改代码中的保存路径部分,如果你想将图片保存到static/images
目录中,可以将代码中的image.save("uploaded_images/" + file.filename)
改为image.save("static/images/" + file.filename)
,确保该目录存在。
问题2:如何限制上传文件的大小?
答:可以通过Flask的内置功能来限制上传文件的大小,可以在创建Flask应用实例时传递max_content_length
参数,要限制最大上传大小为16MB,可以这样修改代码:
app = Flask(__name__) app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 16MB
这样,如果上传的文件超过16MB,Flask会自动返回413错误。
各位小伙伴们,我刚刚为大家分享了有关“服务端上传图片”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/778982.html