怎么样在本地的文件夹中选择图片加载到jsp页面中?然后怎么样把图片存入数据库(sqlserver2000),还需要在查询的时候查询出这个图片?
注:是不是需要先把本地图片存入到服务器的临时文件夹下?
有没有参考的代码,谢谢各位大虾~~~跪求!!!
注:是不是需要先把本地图片存入到服务器的临时文件夹下?
有没有参考的代码,谢谢各位大虾~~~跪求!!!
解决方案 »
- j2ee session管理问题
- oracle中提取的数据量,
- 启动tomcat,加载项目时,出现如下异常信息,请求分析解答!
- 关于Frame的问题!
- 各位熟悉resin服务器的进来一下,给分析分析,实在是不知道怎么下手查!-_-
- 动态加载html.txt文件,不能显示内容,请教各位大侠
- 整和XMLBuilder,JavaScriptBuilder,HTMLBuilder的Jbuilder10!
- 神秘问题的解答者来领分 (1)
- 高分请教SQLServer JDBC Driver连接错误问题!
- Servlet 无法获取jquery ajax post 传过来的数据
- Window.open是打开一个新的窗口,我想不开新的窗口,就在本窗口跳到另外一个JSP里面去怎么写
- 两个视图的连接
<%@page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic"
prefix="logic"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html"
prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean"%>
<html>
<script type="text/javascript">
function v(){document.myform.img.src=document.myform.pic.value;
}</script>
<body>
<form action="photo.do?p=main" method="POST" enctype="multipart/form-data" name="myform"><%--
得到本地的图片
--%><input type="file" name="pic" onchange="v()" >
<img name="img" src="" ><%--
显示数据库中的图片
--%><img name="abc" src="photo.do?p=view">
<input type="submit" value="going"/>
</form>
</body>
</html>
Action
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package action;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;import form.PhotoForm;/**
* MyEclipse Struts Creation date: 04-13-2007
*
* XDoclet definition:
*
* @struts.action validate="true"
*/
public class PhotoAction extends DispatchAction {
/*
* Generated Methods
*/ /**
* Method execute
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward main(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub PhotoForm tform = (PhotoForm) form; FormFile file = tform.getPic();
String name = "ruby";
HttpSession session = request.getSession();
if (file.getFileSize() > 10000) { }
// 获取文件名
String filename = file.getFileName();
System.out.println(filename);
int index = filename.lastIndexOf(".");
System.out.println(index);
filename = filename.substring(index);
System.out.println(filename);
// 设置图片文件临时存放的路径
// String path = session.getServletContext().getRealPath("/") +
//
// "UploadFile\\" + name + filename;
String path = "D:/" + name + filename;
try {
// 读取文件中的数据,获取二进制的数据流
InputStream stream = file.getInputStream();
// 把数据写到指定路径
OutputStream bos = new FileOutputStream(path);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.flush();
bos.close();
stream.close();
} catch (Exception fe) { }
file.destroy();
PreparedStatement pst = null;
String sql = "insert into picture(id,pic) values(?,?)";
String id = "";
int a;
// 存储图片到表中
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
Connection m_conn = DriverManager.getConnection(url, "sa", "1234");
//查询ID
Statement s=m_conn.createStatement();
String str1="select max(id) from picture";
ResultSet rs=s.executeQuery(str1);
while(rs.next())
{
id=rs.getString(1);
}
if(id==null){
id="100";
a=Integer.parseInt(id);
}else{
a=Integer.parseInt(id)+1;
}
System.out.println(a);
pst = m_conn.prepareStatement(sql); pst.setInt(1, a); File filea = new File(path);
FileInputStream in = new FileInputStream(filea);
pst.setBinaryStream(2, in, in.available()); if (filea.exists()) {
filea.delete();
System.out.println("删除临时文件");
}
pst.execute();
m_conn.commit();
} catch (IOException e) {
System.out.println("文件读取失败.");
e.printStackTrace();
} catch (Exception e) {
System.out.println("插入记录失败");
e.printStackTrace();
}
return mapping.findForward(null); }
// 从表中得到照片到页面
public ActionForward view(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
PreparedStatement pst = null;
Connection m_conn=null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
m_conn = DriverManager.getConnection(url, "sa", "1234");
String sql = "select pic from picture where id=" + 4;
pst = m_conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
if (rs.next()) {
InputStream in = rs.getBinaryStream("pic");
int bytesRead = 0;
byte[] buffer = new byte[8192];
//设置照片格式.
response.setContentType("image/gif");
//返回ServletOutputStream 对象.
OutputStream outs = response.getOutputStream();
while ((bytesRead = in.read(buffer, 0, 8192)) != -1) {
outs.write(buffer, 0, bytesRead);
}
outs.flush();
in.close();
rs.close();
} else {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pst.close();
m_conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
return null;
}
}
FormBean
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package form;import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;/**
* MyEclipse Struts
* Creation date: 04-13-2007
*
* XDoclet definition:
* @struts.form name="photoForm"
*/
public class PhotoForm extends ActionForm {
/*
* Generated Methods
*/
private FormFile pic; public FormFile getPic() {
return pic;
} public void setPic(FormFile pic) {
this.pic = pic;
} /**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
} /**
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
}