我编写了一个简单的jsp代码,将pdf文件上传到mysql blob数据库中
我的html代码是
<form method="post" action="uploadfile.jsp" enctype="multipart/form-data">
<center>
<table border="1" width="25%" cellpadding="5">
<thead>
<th colspan="3">Upload File</th>
</thead>
<tbody>
<tr>
<td>Title : </td>
<td><input type="text" name="title" size="30"></td>
</tr>
<tr>
<td>Choose File : </td>
<td><input type="file" name="file_uploaded" /></td>
</tr>
<tr>
<td colspan="3"><center><input type="submit" value="Upload"></center></td>
</tr>
</tbody>
</table>
</center>
</form>
我的jsp代码是
<%@page import="java.io.*" %>
<%@page import="java.sql.*" %>
<%
response.setContentType("text/html;charset=UTF-8");
InputStream inputStream = null;
Connection conn=null;
PreparedStatement st=null;
ResultSet rs=null;
String title=(request.getParameter("title"));
Part filePart = request.getPart("file_uploaded");
if (filePart != null)
{
out.println(filePart.getName());
out.println(filePart.getSize());
out.println(filePart.getContentType());
inputStream = filePart.getInputStream();
}
try
{
String idTemp="1";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/fileupload","root","password");
String sql = "INSERT INTO files (id, title, file) values (?, ?, ?)";
st = conn.prepareStatement(sql);
st.setString(1, idTemp);
st.setString(2, title);
if (inputStream != null)
{
st.setBinaryStream(3, inputStream, (int) filePart.getSize());
}
int row = st.executeUpdate();
if (row > 0)
{
out.println("File uploaded!!!");
conn.close();
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.include(request, response);
}
else
{
out.println("Couldn't upload your file!!!");
conn.close();
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.include(request, response);
}
}catch(Exception e){out.print(e);}
%>
执行此代码之后。我得到错误“java.sql.sqlexception:没有为参数3指定值”
这个代码有什么问题。我的数据库表是空的,我不能上传任何pdf数据
我的数据库sql是
create table files(id int(4),title varchar(20),file mediumblob,primary key(id)) ENGINE=InnoDB DEFAULT CHARSET=latin1;
2条答案
按热度按时间qnyhuwrf1#
我刚刚创建了一个servlet代码。现在它运行良好
}
mspsb9vt2#
您在这一部分遇到了错误。
这里需要添加另一个参数。只添加了两个参数,但在查询中声明了三个参数
values (?, ?, ?)