对于文件上传部分,您需要
enctype="multipart/form-data"在HTML表单上进行设置,以便Web浏览器将发送文件内容,并且您希望
request.getPart()在servlet的
doPost()方法中使用来将文件获取为
InputStream。有关具体的代码示例,另请参见如何使用JSP
/ Servlet将文件上传到服务器?
然后,保存此
InputStream的DB,只需使用
PreparedStatement#setBinaryStream()上
BLOB/
varbinary/
bytea列或任何列表示您最喜欢的数据库引擎“二进制数字”。
preparedStatement = connection.prepareStatement("INSERT INTO user (name, email, logo) VALUES (?, ?, ?)");preparedStatement.setString(1, name);preparedStatement.setString(2, email);preparedStatement.setBinaryStream(3, logo);// ...您不一定需要将其转换
InputStream为
byte[],也不会提高内存效率。假设有100个用户同时上传10MB的图像,那么此时将分配1GB的服务器内存。



