作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正如我在标题中提到的,我想将图像上传到数据库字段中。所以,无论我对我的编码部分做了什么。我在这里分享。我不认为我的代码会有任何问题,因为我在屏幕上得到了正确的输出。但是,问题是,当我打开数据库时,它显示了一些不同的输出。我不知道,当我尝试执行 select * from PIC
时,数据库出了什么问题。然后,PIC
列显示一些意想不到的结果。不知道我的图片是否插入到表格中。
谢谢!!!
index.jsp
<html>
<head>
<title>Upload</title>
</head>
<body>
<form action="upload" enctype="multipart/form-data" method="post">
<table width="400" align="center">
<tr><td>UserName :</td><td><input type="file" name="userid" id="userid" /></td></tr>
<tr><td><input type="Submit" value="Upload" style="width: 100px; height:30px;"/></td></tr>
</table>
</form>
</body>
这是我的 servlet 页面:
上传.java
package fileupload;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.regex.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class upload extends HttpServlet {
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart) {
out.println("File Not Uploaded");
} else {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = null;
try {
items = upload.parseRequest(request);
out.println("items: " + items);
} catch (FileUploadException e) {
e.printStackTrace();
}
FileItem file = (FileItem) items.get(0);
// out.print(file);
Connection conn = null;
String connstr = "jdbc:oracle:thin:@localhost:1521/XE";
String uname = "epolicia";
String password = "admin";
String driver = "oracle.jdbc.OracleDriver";
String sql = null;
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(connstr, uname, password);
// FileInputStream fs = new FileInputStream(savedFile);
sql = "INSERT INTO pic(pic) VALUES(?)";
PreparedStatement st = conn.prepareStatement(sql);
// st.setInt(1,1);
st.setBinaryStream(1, file.getInputStream(), (int) file.getSize());
int rs = st.executeUpdate();
if (rs > 0) {
out.println("Query Executed Successfully++++++++++++++");
}
conn.close();
} catch (Exception e) {
out.println(e.getMessage());
}
}
}
}
页面运行成功,没有任何异常。我们将不胜感激。
最佳答案
最后,我找到了解决方案。谢谢大家。我按照网站和链接中提到的步骤进行操作,并且我共享相同的链接。这样,其他人就会从中受益。
Upload photos into Oracle BLOB column from Java Servlet and listing photos
因为插入的图片是blob
类型,binary large object
,无法在sql*上显示加上
。这就是显示 [datatype]
的原因。
关于java - 在 Oracle 数据库中使用 JSP 和 Servlet 上传图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8869874/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!