将图片存入到MySQL数据库可以通过以下步骤实现:
CREATE DATABASE image_db;
USE image_db;
CREATE TABLE images (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
image LONGBLOB
);
这将创建一个名为image_db
的数据库和一个名为images
的表,其中包含一个自增的id
字段、一个name
字段用于存储图片名称、以及一个image
字段用于存储图片的二进制数据。
from flask import Flask, request, render_template
import MySQLdb
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 限制最大上传文件大小为16MB
# MySQL数据库连接配置
db = MySQLdb.connect(
host='localhost',
user='your_username',
passwd='your_password',
db='image_db'
)
@app.route('/')
def index():
return render_template('upload.html')
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['image'] # 获取上传的图片文件
name = request.form['name'] # 获取图片名称
cursor = db.cursor()
cursor.execute('INSERT INTO images (name, image) VALUES (%s, %s)', (name, file.read()))
db.commit()
cursor.close()
return '上传成功!'
if __name__ == '__main__':
app.run()
上述代码使用Flask框架创建了一个简单的Web服务,包含两个路由:/
用于显示上传表单的页面,/upload
用于处理上传操作。在上传表单中,用户可以选择图片文件并输入图片名称,然后点击提交按钮即可将图片存入数据库。
<!DOCTYPE html>
<html>
<head>
<title>图片上传</title>
</head>
<body>
<h1>图片上传</h1>
<form action="/upload" method="POST" enctype="multipart/form-data">
<label for="name">图片名称:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="image">选择图片:</label>
<input type="file" id="image" name="image" accept="image/*" required><br><br>
<input type="submit" value="上传">
</form>
</body>
</html>
将上述代码保存为upload.html
文件,并与应用程序放在同一个目录下。
http://localhost:5000
,即可看到上传表单页面。选择一张图片文件并输入名称,点击提交按钮即可将图片存入数据库。需要注意的是,上述示例中的数据库连接配置需要根据实际情况进行修改,确保能够连接到正确的MySQL数据库。另外,示例中的代码仅为演示用途,实际应用中需要考虑图片的压缩、大小限制、安全性等因素,并进行更全面的错误处理和验证。
领取专属 10元无门槛券
手把手带您无忧上云