开发者社区 问答 正文

JSP用mysql存储照片时出错,求大神 400 请求报错 

<%@ page language="java" contentType="text/html; charset=gbk"

    pageEncoding="gbk" %>

<% @page import="java.sql.*" %>

<% @page import="java.text.*" %>

<% @page import="java.io.*" %>

<% @page import="java.util.*" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gbk">

<title>Insert title here</title>

</head>

<body>

<% try{

String id=request.getParameter("id");

String file=request.getParameter("file");

out.println(id);

out.println(file);

FileInputStream str =new FileInputStream(file);

out.print(str.available());

Class.forName("com.mysql.jdbc.Driver");

java.sql.Connection conn;

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/testpic","root","123");

String sql="INSERT INTO test(id,pic)values(?,?)";

PreparedStatement  pstmt=conn.prepareStatement(sql);

pstmt.setString(1,id);

pstmt.setBinaryStream(2,str,str.available());

pstmt.execute();

out.println("you hava success in insert file!");

}catch(Exception e){

    out.println(e);

}

%>

</body>

</html>

展开
收起
kun坤 2020-05-30 16:21:12 627 分享 版权
1 条回答
写回答
取消 提交回答
  • 数据库连接有不能被正常关闭的可能。改正:在try前声明conn = null变量,在try-catch程序块中获得数据库连接并赋值给conn变量,最后在try-catch对应的finally程序中判断conn != null 时执行conn.close() 关闭数据库连接动作。######哦,一般只在数据库和表上设置使用相同的编码######那个数据类型是数据库用来存比较大的数据流的,不用这个根本没法弄,。问题已经解决了,主要是mysql的编码问题######没用过 你用的这个mediumblob数据类型,建议用比较常用的数据类型######没有用啊,数据库是链接了的,但是就是插入不了图片, 可以插入字符串。 是不是我的表出了问题。 CREATE TABLE test8 ( id char(100) DEFAULT NULL, pic mediumblob ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    2020-05-30 16:21:19
    赞同 展开评论