请问哪里有利用JSP上传图片的原代码下载

jxnucsb2008 2005-05-12 07:20:24
请问哪里有利用JSP上传图片的原代码下载
...全文
237 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
自在天堂鸟 2005-05-12
  • 打赏
  • 举报
回复
第一步,在SQL-Server中创建表

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[picTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[picTable]
GO

CREATE TABLE [dbo].[picTable] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[pic] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

第二步:上传页面
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
index
</title>
</head>
<body bgcolor="#ffffff">
<form action="saveit.jsp" enctype="multipart/form-data" method="POST">
<input type="file" name="image" size="20" maxlength="20"/><p>
<input type="submit" value="上传"/>
</form>
<br>
<a href="servlet3">显示图片</a>
</body>
</html>

3.保存图片的jsp
<%@ page contentType="text/html; charset=GBK" import="upload.*"%>
<html>
<head>
<title>
jsp1
</title>
</head>
<body bgcolor="#ffffff">
<%
db.addPic(pageContext,application,out);
out.println("图片添加成功!");
%>
<br>
<a href="index.jsp">返回继续添加</a>
</a>
</body>
</html>

调用一个JavaBean中的addpic方法

package upload;
import com.jspsmart.upload.*;
import javax.servlet.jsp.*;
import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;

import java.sql.*;
public class db {
private static Connection conn=null;
public db() {
}
public static void InitConnection(String dbName)
{

}
public static void addPic(PageContext pageContext,ServletContext application,JspWriter out) {
try
{
//将上传文件存入应用程序目录
SmartUpload su=new SmartUpload();
su.initialize(pageContext);
su.setMaxFileSize(5*1024*1024);
su.upload();//到服务器的内存
com.jspsmart.upload.File f=su.getFiles().getFile(0);
String filename=f.getFileName();
filename=application.getRealPath("/")+filename;
f.saveAs(filename);

//通过流方式,读取文件,存入数据库中
java.io.File file=new java.io.File(filename);
FileInputStream fis=new FileInputStream(file);

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String strCon="jdbc:odbc:pubs";
conn=DriverManager.getConnection(strCon,"sa","");
Statement st=conn.createStatement();
String sql="insert into picTable (pic,type) values(?,?)";
//预编译命令
PreparedStatement ps=conn.prepareStatement(sql);
ps.setBinaryStream(1,fis,(int)file.length());
ps.setString(2,filename.substring(filename.lastIndexOf(".")+1));
ps.executeUpdate();
//删除文件
fis.close();
boolean isOK=file.delete();
if(!isOK)
{
System.out.println("文件删除失败");
}
ps.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
public static void display(HttpServletResponse response) throws Exception
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String strCon="jdbc:odbc:pubs";
conn=DriverManager.getConnection(strCon,"sa","");
Statement st=conn.createStatement();

//显示图片
String sql = "select [type],pic from picTable";
st=conn.createStatement();
ResultSet rs = st.executeQuery(sql);
response.reset();
while(rs.next())
{
String type = rs.getString(1);

//读取二进制流,将文件内容写入二进制文件
InputStream in = rs.getBinaryStream(2);
byte[] buffer =new byte[1444];
int byteread=0;
while ((byteread=in.read(buffer))!=-1)
{
response.getOutputStream().write(buffer,0,byteread);
}
}
response.getOutputStream().close();
rs.close();
}
}

显示图片调用display
比较麻烦,不过事实如此

欢迎光临http://www.zhihuigu.com讨论技术问题,免费Jsp,asp,aspx空间,电子书下载
Java设计模式(中文版CHM)

Java编程思想(中文版CHM)

Java 2 图形设计卷Ⅱ:SWING(中文版CHM)

实战EJB(中文版pdf格式)

Hibernate原理与配置快速入门(中文版pdf)

hibernate2安装手记(中文版pdf)

JSP2.0技术手册(中文版pdf)

Hibernate开发指南(中文版pdf)

Hibernate中文参考文档(中文版pdf)

精通EJB第三版(英文版pdf)
loveyousomuch 2005-05-12
  • 打赏
  • 举报
回复
现在有很多的现成的库,如smartUp和common-upload等等,
搜一下

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧