纯jsp上传下载实现

kurama_mail 2010-06-17 09:05:25
http://download.csdn.net/source/2463023
最近看到很多人在问如何实现上传下载的,纯jsp的话可以使用com.jspsmart.upload、org.apache.commons.fileupload、和我这个。
一般框架都是对文件上传做过封装没必要使用这些(可以拿我这个的下载部分用,我已经独立好了)。
jspsmartupload和commonsfileupload不是100%拿来就能用的。那些碰到问题的人请自己去看一遍他们的源码(很容易看)然后跟踪下就会知道什么地方错了。
我封装的代码里有注释(我是拿别人的改出来的),我不会再对这个版本做任何修复。有什么要求自己去改!但我接受你们提出的任何问题。
最后我不希望各位是直接拿这东西来用,我没对源码做处理。请你们好好理解下文件流在http协议传输方式。

我大约1周内结贴。
...全文
1094 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZPH2254 2010-12-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 a8669256 的回复:]
你好,请教一个问题我的jsp页面上传文件时出现乱码(用的是jspsmartupload.jar)谢谢...
我的jsp页面:

<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head><title>商家注册信息</title></head>
<body style="background:url('img/top/……
[/Quote]
给我的感觉应该是在数据库中编码设置出了问题
露珠111 2010-07-02
  • 打赏
  • 举报
回复
ding
kurama_mail 2010-06-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 a8669256 的回复:]
你好,请教一个问题我的jsp页面上传文件时出现乱码(用的是jspsmartupload.jar)谢谢...
我的jsp页面:

<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head><title>商家注册信息</title></head>
<body style="background:url('img/top/……
[/Quote]
乱码到底出在页面参数还是上传的文件中?
我看你页面编码为gb2312,也设置编码模式。正常情况下你是可以直接获取参数不需要转码。
乱码这种错误建议你自己找出最根本是在那里到那里编码出的问题,不然以后你碰到其他乱码还是没能力解决的。
rwpeng86 2010-06-19
  • 打赏
  • 举报
回复
顶一下,虽然现在还不太懂!最近忙着毕业设计,用ASP做的MIS系统,上传文件用的风声无组件上传类,搞的很晕,下载直接给的连接,连接地址存在数据库里。自己往上传类里写往数据库里插入记录的操作,没成功!就直接session保存了文件名,之后另外写了个asp文件,进行往数据库里插入记录的操作。现在想着能骗一骗老师,还是很搞笑的。
a8669256 2010-06-19
  • 打赏
  • 举报
回复
你好,请教一个问题我的jsp页面上传文件时出现乱码(用的是jspsmartupload.jar)谢谢...
我的jsp页面:

<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head><title>商家注册信息</title></head>
<body style="background:url('img/top/bg.gif')">
<center>
<h2>添加新商家信息</h2>
<form action="<%=request.getContextPath()%>/sjServlet?method=sjreg&fbr=<%=session.getAttribute("uu")%>" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>商家编号:</td><td><input type="text" name="sj_bh"/></td>
</tr>
<tr>
<td>商家名称:</td><td><input type="text" name="sj_name" /></td></tr>
<tr>
<td>商家地址:</td><td><input type="text" name="sj_addr" /></td></tr>
<tr>
<td>商家电话:</td><td><input type="text" name="sj_tel"/></td></tr>
<tr>
<td>
上市时间:</td><td><input type="text" name="sj_time" /></td></tr>

<tr><td>图片路径:</td><td><input type="file" name="face"/></td></tr>
<tr>
<td>商家描述: </td><td> <TEXTAREA NAME="sj_ms" ROWS="6" COLS="80"></TEXTAREA></td></tr>

<tr><td>
</td>
<td align=center><input type="submit" value=" 添加 " /><input type="reset" value=" 重置 " /></td>
</tr>
</table>
</form>
</center>
</html>
<%
String msg=(String)request.getAttribute("msg");
if(msg!=null)
{
%>
<script>
alert('<%=msg%>');
</script>
<%
}
%>


servlet页面:
package com.wjxl.Servlet;

import java.io.*;
import java.util.Vector;
import javax.servlet.*;
import javax.servlet.http.*;

import com.jspsmart.upload.SmartUpload;
import com.wjxl.Dao.sjDaoImp;
import com.wjxl.Dao.sjInfo;

public class sjServlet extends HttpServlet {

public String codeToString(String str) {
String s = str;
try {
byte tempByte[] = str.getBytes("utf-8");
s = new String(tempByte,"gb2312");
return s;
} catch (Exception e) {
System.out.print("sdf");
return s;
}
}

public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}

public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("GB2312");
resp.setContentType("text/html;charset=GB2312");
String method = req.getParameter("method");
String forward = null;

if (method.equalsIgnoreCase("search")) {
forward = search(req, resp);
} else if (method.equalsIgnoreCase("sjreg")) {
forward = sjregister(req, resp);

}
forward1(req, resp, forward);
}

private String sjregister(HttpServletRequest req, HttpServletResponse resp) {
// TODO Auto-generated method stub
String forward = null;
SmartUpload su = new SmartUpload();
// 获取并保存文件
// 实例化smartupload类

String face = null;
//su.setCharset("utf-8");

try {

su.initialize(this.getServletConfig(), req, resp);
su.setAllowedFilesList("jpg,bmp,gif");
su.upload();
su.save("user/upload/", SmartUpload.SAVE_VIRTUAL);
face = "upload/" + su.getFiles().getFile(0).getFileName();

sjInfo s = new sjInfo();
System.out.print(codeToString(su.getRequest().getParameter(
"sj_name").trim()));

s.setSj_name(codeToString(su.getRequest().getParameter("sj_name").trim()));
s.setSj_bh(su.getRequest().getParameter("sj_bh").trim());
s.setSj_tel(su.getRequest().getParameter("sj_tel").trim());
s.setSj_addr(su.getRequest().getParameter("sj_addr").trim());
s.setSj_image(face);
s.setSj_fbr(codeToString(req.getParameter("fbr").trim()));
s.setSj_ms(su.getRequest().getParameter("sj_ms").trim());
s.setSj_time(su.getRequest().getParameter("sj_time").trim());

int result = new sjDaoImp().sjreg(s);
// RequestDispatcher rd;
if (result > 0) {

String msg = "添加商家成功!!!";
req.setAttribute("msg", msg);
forward = "/user/sjreg.jsp";
} else {
String msg = "添加商家失败,商家编号已存在请重新添加!!!";
req.setAttribute("msg", msg);
forward = "/user/sjreg.jsp";

}

} catch (Exception es) {
es.printStackTrace();
forward = "/error.jsp";

}

return forward;

}
bean页面:

public int sjreg(sjInfo sjinfo) {

Connection con = null;
String result = null;
int i=0;
con=new connDB().getConnection();

PreparedStatement stmt = null;

try {

String strSql="insert into shangjia1 values(?,?,?,?,?,?,?,0,?)";

stmt = con.prepareStatement(strSql);

stmt.setString(1,sjinfo.getSj_bh());
stmt.setString(2,sjinfo.getSj_name());
stmt.setString(3,sjinfo.getSj_addr());
stmt.setString(4,sjinfo.getSj_tel());
stmt.setString(5,sjinfo.getSj_time());
stmt.setString(6,sjinfo.getSj_image());
stmt.setString(7,sjinfo.getSj_ms());
stmt.setString(8, sjinfo.getSj_fbr());
i=stmt.executeUpdate();


}catch (Exception ex) {
ex.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
return i;
}


}
Ade子夜 2010-06-18
  • 打赏
  • 举报
回复

11
lizhongyi188 2010-06-18
  • 打赏
  • 举报
回复
那我帮你顶顶吧
kurama_mail 2010-06-18
  • 打赏
  • 举报
回复
居然沉了,不是吧。
我难得把自己封装的东西拿出来共享啊。
我强烈要求加精。
kurama_mail 2010-06-18
  • 打赏
  • 举报
回复
自己再顶一次 - -
qiheia 2010-06-18
  • 打赏
  • 举报
回复
哦,这样啊,
铁匠梁 2010-06-17
  • 打赏
  • 举报
回复
下载直接URL即可
kurama_mail 2010-06-17
  • 打赏
  • 举报
回复
我这个只需要把我那2个java类丢进去就可以了,不需要任何jar(除servlet-api.jar,我也没把这东西做成jar)。
huangqibing0626 2010-06-17
  • 打赏
  • 举报
回复
下载没有必要用组件吧!
kurama_mail 2010-06-17
  • 打赏
  • 举报
回复
http://download.csdn.net/source/2463023
我不是写在了第1行吗
wjweijun 2010-06-17
  • 打赏
  • 举报
回复
在那里可以下载,想看看。

81,095

社区成员

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

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