jsp图片动态存储到mysql数据库中

本文介绍了一种使用JSP将图片动态存储到MySQL数据库的方法,包括创建数据库表、在JSP中连接数据库、上传图片、从数据库读取图片并显示。由于在实际操作中存在性能问题和编码冲突,作者最终放弃了直接存储图片到数据库的方式。
摘要由CSDN通过智能技术生成

        一,创建数据库,create tables images(id int not null primary key ,content varchar(100),image blod );

       二,在jsp中连接数据库,

import java.sql.Connection;
import java.sql.DriverManager;
public class Conn {
  final String MYSQLDBDRIVER="org.gjt.mm.mysql.Driver";    
  final String MYSQLDBURL="jdbc:mysql://localhost:3306/userinfo";   
  final String MYSQLDBUSER="root";    
  final String MYSQLDBUSERPASS="";
  
public   Connection getConnection()
 {
 try{
 Class.forName(MYSQLDBDRIVER);
Connection con=DriverManager.getConnection(MYSQLDBURL,MYSQLDBUSER,MYSQLDBUSERPASS);
 return con;
 }catch(Exception e){
 e.printStackTrace();

JSP 图片上传MySQL 数据库,可以按照以下步骤进行操作: 1. 在表添加一个 BLOB 类型的字段,用于存储图片数据。 2. 在 JSP 页面使用表单,添加一个文件上传控件,用于选择要上传的图片文件。 3. 在 JSP 页面编写 Java 代码,用于将选择的图片文件读取为二进制数据,并将其存储数据库。 以下是实现步骤的详细说明: 1. 添加 BLOB 类型字段 在 MySQL 数据库创建一张表,包含一个 BLOB 类型的字段,用于存储图片数据。例如: ```sql CREATE TABLE images ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), data BLOB ); ``` 2. 添加文件上传控件 在 JSP 页面添加一个文件上传控件,例如: ```html <form action="upload.jsp" method="post" enctype="multipart/form-data"> <input type="file" name="image" /> <input type="submit" value="Upload" /> </form> ``` 3. 处理文件上传并存储数据库 在 upload.jsp 页面,使用 Java 代码处理文件上传,并将文件内容存储数据库。例如: ```jsp <%@ page import="java.sql.*" %> <%@ page import="java.io.*" %> <% // 获取上传的文件 Part filePart = request.getPart("image"); InputStream fileContent = filePart.getInputStream(); String fileName = filePart.getSubmittedFileName(); // 将文件内容读取为二进制数据 ByteArrayOutputStream output = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int length; while ((length = fileContent.read(buffer)) != -1) { output.write(buffer, 0, length); } byte[] imageData = output.toByteArray(); // 存储文件内容到数据库 Connection conn = null; PreparedStatement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); stmt = conn.prepareStatement("INSERT INTO images (name, data) VALUES (?, ?)"); stmt.setString(1, fileName); stmt.setBytes(2, imageData); stmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { } } if (conn != null) { try { conn.close(); } catch (SQLException e) { } } } // 显示上传成功消息 out.println("File uploaded successfully."); %> ``` 在这段代码,首先获取上传的文件并读取其内容为二进制数据,然后将其存储数据库。最后输出上传成功消息。 注意:上述代码仅为示例,实际情况需要根据具体需求进行修改。同时,为了避免 SQL 注入等安全问题,建议使用 PreparedStatement 来执行 SQL 语句。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值