其实在大多数的实际项目中 数据库中存放的是 图片的url地址 直接将图片放置到你的项目中的一个专门的文件夹先 在页面显示的时候直接按照 url来显示图片 这样既方便由能够缓解服务器负担增加性能 你可以尝试一下
创新互联建站-专业网站定制、快速模板网站建设、高性价比澧县网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式澧县网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖澧县地区。费用合理售后完善,10余年实体公司更值得信赖。
img src="你从数据库中获得的图片的url"
想必读取数据库你应该会把
我这里给你介绍下在struts框架下的图片上传的三步。
1、在pojo里,把图片字段设置为byte[]类型
private byte[] image;
2、如果是采用struts的话,只需要
.setImage(formbean.getImage().getFileData());
前提是定义一个formbean类,使用getFileData()方法将图片类型转化为byte[]类型。
3、在前台页面里这样,上传图片的控件名称为image,类型为file.
input type="file" name="image" size="30" value=""
String sql = "select * from pz_1001_2009";
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
//通过Statement获得结果集
ResultSet rs = stmt.executeQuery(sql);
这一段详细代码上来看看
另外,你的do while里面有用到stmt么?
在do while外面加一个try catch,把出错的时候的i的值,count的值打印出来
很简单。
可以手写IO读写(有点麻烦)。
怕麻烦的话使用FileUpload组件 在servlet里doPost嵌入一下代码
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
//设置保存上传文件的目录
String uploadDir =getServletContext().getRealPath("/up");
System.out.println(uploadDir);
if (uploadDir == null)
{
out.println("无法访问存储目录!");
return;
}
//根据路径创建一个文件
File fUploadDir = new File(uploadDir);
if(!fUploadDir.exists()){
if(!fUploadDir.mkdir())//如果UP目录不存在 创建一个 不能创建输出...
{
out.println("无法创建存储目录!");
return;
}
}
if (!DiskFileUpload.isMultipartContent(request))
{
out.println("只能处理multipart/form-data类型的数据!");
return ;
}
DiskFileUpload fu = new DiskFileUpload();
//最多上传200M数据
fu.setSizeMax(1024 * 1024 * 200);
//超过1M的字段数据采用临时文件缓存
fu.setSizeThreshold(1024 * 1024);
//采用默认的临时文件存储位置
//fu.setRepositoryPath(...);
//设置上传的普通字段的名称和文件字段的文件名所采用的字符集编码
fu.setHeaderEncoding("gb2312");
//得到所有表单字段对象的集合
List fileItems = null;
try
{
fileItems = fu.parseRequest(request);//解析request对象中上传的文件
}
catch (FileUploadException e)
{
out.println("解析数据时出现如下问题:");
e.printStackTrace(out);
return;
}
//处理每个表单字段
Iterator i = fileItems.iterator();
while (i.hasNext())
{
FileItem fi = (FileItem) i.next();
if (fi.isFormField()){
String content = fi.getString("GB2312");
String fieldName = fi.getFieldName();
request.setAttribute(fieldName,content);
}else{
try
{
String pathSrc = fi.getName();
if(pathSrc.trim().equals("")){
continue;
}
int start = pathSrc.lastIndexOf('\\');
String fileName = pathSrc.substring(start + 1);
File pathDest = new File(uploadDir, fileName);
fi.write(pathDest);
String fieldName = fi.getFieldName();
request.setAttribute(fieldName, fileName);
}catch (Exception e){
out.println("存储文件时出现如下问题:");
e.printStackTrace(out);
return;
}
finally //总是立即删除保存表单字段内容的临时文件
{
fi.delete();
}
}
}
注意 JSP页面的form要加enctype="multipart/form-data" 属性, 提交的时候要向服务器说明一下 此页面包含文件。
如果 还是麻烦,干脆使用Struts 的上传组件 他对FileUpload又做了封装,使用起来更傻瓜化,很容易掌握。
-----------------------------
以上回答,如有不明白可以联系我。
jsp是靠加载图片路径来显示图片的,图片可以保存在项目中,也可以保存到磁盘的某个路劲下。
图片放webroot下,一般是webroot下建一个img或pic 文件夹专门存图。
jsp使用的时候img src"%=request.getContextPath()%/pic/mypic.gif"/
这样就可以加载到图片了。