在做管理【新闻】板块时,管理员更新新闻页面的内容,现在的想法是能够把一个包含文字和图片的页面通过后台管理直接上传,然后可以在【新闻】页面自动更新 单纯的上传图片已经研究透了,但是一起上传文字和图片,而且要实现起来方便,只要简单的排版就可以将效果在前台显示 忘高手出手相救,只剩两天时间``` 具体:1.数据库要怎么设计?2.图片要怎么储存在表中?3.要用什么特殊的java包?4.我的是Jsp页面的,所以asp的可以飘过。5.我倾家荡产的给分(虽然我很少分...)
è¿æ¯æ°æ®åºè¿æ¥çä¸æ®µä»£ç import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.yxq.toolsbean.DB;
import com.yxq.valuebean.PhotoBean;public class PhotoDao {
private DB connection = null;
public PhotoDao() {
connection = new DB();
} public boolean operationPhoto(String operation, PhotoBean single) {
String sql = "";
if (operation.equals("delete"))
sql = "delete from tb_photo where id=" + single.getId();
if (operation.equals("upload"))
sql = "insert into tb_photo values (null,'"+ single.getPhotoAddr() + "','"+ single.getPhotoTime() + "','"+ single.getPhotoInfo() + "')";
boolean mark=connection.executeUpdate(sql);
return mark;
} public PhotoBean queryPhoto(int id) {
PhotoBean photoBean = null;
String sql = "select * from tb_photo where id=" + id;
ResultSet rs = connection.executeQuery(sql);
try {
if(rs.next()) {
photoBean = new PhotoBean();
photoBean.setId(rs.getInt(1));
photoBean.setPhotoAddr(rs.getString(2));
photoBean.setPhotoInfo(rs.getString(3));
photoBean.setPhotoTime(rs.getString(4));
}
} catch (SQLException e) {
e.printStackTrace();
}
return photoBean;
} public List queryPhoto(String type) {
if(type==null||type.equals(""))
type="sub";
String sql = "";
if(type.equals("all"))
sql="select * from tb_photo order by photo_sdTime DESC";
else
sql="select * from tb_photo order by photo_sdTime DESC limit 8";
List list = null;
PhotoBean photoBean = null;
ResultSet rs = connection.executeQuery(sql);
if(rs!=null){
list=new ArrayList();
try {
while (rs.next()) {
photoBean = new PhotoBean();
photoBean.setId(rs.getInt(1));
photoBean.setPhotoAddr(rs.getString(2));
photoBean.setPhotoTime(rs.getString(3));
photoBean.setPhotoInfo(rs.getString(4));
list.add(photoBean);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
} public int queryMaxId() {
int maxId = 0;
String sql = "select max(id) from tb_photo";
ResultSet rs = connection.executeQuery(sql);
if(rs!=null){
try {
if(rs.next())
maxId = rs.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}finally{
connection.closed();
}
}
return maxId;
}
}è¿æ¯ä¸ä¼ ç代ç ï¼ç¨åè¦å¯¼å ¥ä¸ä¸ªjspSmartUploadå import java.io.IOException;
import java.util.Date;
import java.util.List;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
import com.yxq.dao.PhotoDao;
import com.yxq.toolsbean.MyTools;
import com.yxq.valuebean.PhotoBean;public class PhotoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if(action==null)
action="";
if (action.equals("upload"))
this.addPhoto(request, response); //ä¸ä¼ å¾ç
if (action.equals("delete"))
this.deletePhoto(request, response); //å é¤å¾ç
if(action.equals("list"))
this.selectPhoto(request,response); //æ¥è¯¢ææå¾ç
if(action.equals("single"))
this.singlePhoto(request,response); //æ¥çå¾ç详ç»å 容
if(action.equals("adminList"))
this.adminSelectPhoto(request,response); //æ¥è¯¢ææå¾ç
}
/**
* @åè½ åå°-æ¥è¯¢ææå¾ç
*/
public void selectPhoto(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PhotoDao photoDao=new PhotoDao();
List photoList=photoDao.queryPhoto("all");
request.setAttribute("photoList", photoList);
RequestDispatcher rd=request.getRequestDispatcher("/front/photo/PhotoList.jsp");
rd.forward(request,response);
}
/**
* @åè½ åå°-æ¥è¯¢ææå¾ç
*/
public void adminSelectPhoto(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PhotoDao photoDao=new PhotoDao();
List photoList=photoDao.queryPhoto("all");
request.setAttribute("photoList", photoList);
RequestDispatcher rd=request.getRequestDispatcher("/admin/photo/PhotoList.jsp");
rd.forward(request,response);
}
/**
* @åè½ æ¥çæ个å¾ç详ç»å 容
*/
public void singlePhoto(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PhotoDao photoDao=new PhotoDao();
String strId=request.getParameter("id");
int id=MyTools.strToint(strId);
PhotoBean photoSingle=photoDao.queryPhoto(id);
request.setAttribute("photoSingle",photoSingle);
RequestDispatcher rd=request.getRequestDispatcher("/front/photo/PhotoSingle.jsp");
rd.forward(request,response);
} /**
* @åè½ å é¤å¾ç
*/
public void deletePhoto(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String messages="";
String forward="";
String href="";
RequestDispatcher rd=null;
PhotoDao photoDao= new PhotoDao();
int id = MyTools.strToint(request.getParameter("id"));
String fileAddr=photoDao.queryPhoto(id).getPhotoAddr();
String photoDir=request.getSession().getServletContext().getRealPath("\\");
String delFile=photoDir+fileAddr;
java.io.File file = new java.io.File(delFile);
PhotoBean photoBean = new PhotoBean();
photoBean.setId(id);
if (photoDao.operationPhoto("delete", photoBean)) {
boolean result=file.delete();
if(result){
messages="<li>å é¤ç §çæåï¼</li>";
forward="/admin/success.jsp";
href="<a href='PhotoServlet?action=adminList'>[继ç»å é¤å ¶ä»ç §ç]</a>";
}
else{
messages="<li>å é¤ç §ç失败ï¼</li>";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
} else {
messages="<li>å é¤ç §ç失败ï¼</li>";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
request.setAttribute("messages",messages);
request.setAttribute("href",href);
rd=request.getRequestDispatcher(forward);
rd.forward(request,response);
}
/**
* @åè½ ä¸ä¼ å¾ç
*/
public void addPhoto(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
String filePath = "/front/photo/pic/";
String messages="";
String forward="";
String href="";
PhotoDao photoDao = new PhotoDao();
PhotoBean photoBean = new PhotoBean();
SmartUpload su = new SmartUpload();
long maxsize = 2 * 1024 * 1024; // 设置æ¯ä¸ªä¸ä¼ æ件ç大å°ï¼ä¸º2MB
try {
su.initialize(this.getServletConfig(), request, response);
su.setMaxFileSize(maxsize); // éå¶ä¸ä¼ æ件ç大å°
su.setAllowedFilesList("jpg,gif,bmp"); // 设置å 许ä¸ä¼ çæ件类å
su.upload(); // ä¸ä¼ æ件
String photoInfo=su.getRequest().getParameter("info");
if(photoInfo==null||photoInfo.equals("")){ //éªè¯ç §çæè¿°ä¿¡æ¯ï¼è¥æ²¡æè¾å ¥ï¼åæ示è¾å ¥ç §çæè¿°ä¿¡æ¯
messages="请è¾å ¥ç §çæè¿°ä¿¡æ¯ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
else{
File file = su.getFiles().getFile(0); // è·åä¸ä¼ çæ件ï¼å 为åªä¸ä¼ äºä¸ä¸ªæ件ï¼æ以å¯ç´æ¥è·å
if (!file.isMissing()) { // å¦æéæ©äºæ件
String photoAddr=filePath+photoDao.queryMaxId()+"."+file.getFileExt(); //filePathå¼(front\\photo\\pic\\)+å¾çä¿¡æ¯å¨æ°æ®è¡¨ä¸çidå段å¼+â.â+æ件åç¼å;æåçæä¾å¦âfront\photo\pic\12.bmpâè·¯å¾
String now=MyTools.changeTime(new Date()); //è·åå½åæ¶é´å¹¶æ ¼å¼å为å符串
photoBean.setPhotoAddr(photoAddr);
photoBean.setPhotoTime(now);
photoBean.setPhotoInfo(photoInfo);
boolean mark=photoDao.operationPhoto("upload",photoBean);
if(mark){
try {
file.saveAs(photoAddr,File.SAVEAS_VIRTUAL);
messages="ä¸ä¼ æ件æåï¼";
forward="/admin/success.jsp";
href="<a href='admin/photo/PhotoUpload.jsp'>[继ç»ä¸ä¼ ]</a>";
} catch (SmartUploadException ee) {
messages="ä¸ä¼ æ件失败ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
ee.printStackTrace();
}
}
else{
messages="ä¿åæ件信æ¯å¤±è´¥ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
}
else{
messages="请éæ©è¦ä¸ä¼ çæ件ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
}
}catch (java.lang.SecurityException e){
messages="<li>ä¸ä¼ æ件失败ï¼ä¸ä¼ çæ件类ååªå 许为ï¼jpg,gif,bmp</li>";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}catch (SmartUploadException e) {
messages="ä¸ä¼ æ件失败ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
e.printStackTrace();
}
request.setAttribute("messages",messages);
request.setAttribute("href",href);
RequestDispatcher requestDispatcher = request.getRequestDispatcher(forward);
requestDispatcher.forward(request, response);
}
}
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.yxq.toolsbean.DB;
import com.yxq.valuebean.PhotoBean;public class PhotoDao {
private DB connection = null;
public PhotoDao() {
connection = new DB();
} public boolean operationPhoto(String operation, PhotoBean single) {
String sql = "";
if (operation.equals("delete"))
sql = "delete from tb_photo where id=" + single.getId();
if (operation.equals("upload"))
sql = "insert into tb_photo values (null,'"+ single.getPhotoAddr() + "','"+ single.getPhotoTime() + "','"+ single.getPhotoInfo() + "')";
boolean mark=connection.executeUpdate(sql);
return mark;
} public PhotoBean queryPhoto(int id) {
PhotoBean photoBean = null;
String sql = "select * from tb_photo where id=" + id;
ResultSet rs = connection.executeQuery(sql);
try {
if(rs.next()) {
photoBean = new PhotoBean();
photoBean.setId(rs.getInt(1));
photoBean.setPhotoAddr(rs.getString(2));
photoBean.setPhotoInfo(rs.getString(3));
photoBean.setPhotoTime(rs.getString(4));
}
} catch (SQLException e) {
e.printStackTrace();
}
return photoBean;
} public List queryPhoto(String type) {
if(type==null||type.equals(""))
type="sub";
String sql = "";
if(type.equals("all"))
sql="select * from tb_photo order by photo_sdTime DESC";
else
sql="select * from tb_photo order by photo_sdTime DESC limit 8";
List list = null;
PhotoBean photoBean = null;
ResultSet rs = connection.executeQuery(sql);
if(rs!=null){
list=new ArrayList();
try {
while (rs.next()) {
photoBean = new PhotoBean();
photoBean.setId(rs.getInt(1));
photoBean.setPhotoAddr(rs.getString(2));
photoBean.setPhotoTime(rs.getString(3));
photoBean.setPhotoInfo(rs.getString(4));
list.add(photoBean);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
} public int queryMaxId() {
int maxId = 0;
String sql = "select max(id) from tb_photo";
ResultSet rs = connection.executeQuery(sql);
if(rs!=null){
try {
if(rs.next())
maxId = rs.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}finally{
connection.closed();
}
}
return maxId;
}
}è¿æ¯ä¸ä¼ ç代ç ï¼ç¨åè¦å¯¼å ¥ä¸ä¸ªjspSmartUploadå import java.io.IOException;
import java.util.Date;
import java.util.List;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
import com.yxq.dao.PhotoDao;
import com.yxq.toolsbean.MyTools;
import com.yxq.valuebean.PhotoBean;public class PhotoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if(action==null)
action="";
if (action.equals("upload"))
this.addPhoto(request, response); //ä¸ä¼ å¾ç
if (action.equals("delete"))
this.deletePhoto(request, response); //å é¤å¾ç
if(action.equals("list"))
this.selectPhoto(request,response); //æ¥è¯¢ææå¾ç
if(action.equals("single"))
this.singlePhoto(request,response); //æ¥çå¾ç详ç»å 容
if(action.equals("adminList"))
this.adminSelectPhoto(request,response); //æ¥è¯¢ææå¾ç
}
/**
* @åè½ åå°-æ¥è¯¢ææå¾ç
*/
public void selectPhoto(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PhotoDao photoDao=new PhotoDao();
List photoList=photoDao.queryPhoto("all");
request.setAttribute("photoList", photoList);
RequestDispatcher rd=request.getRequestDispatcher("/front/photo/PhotoList.jsp");
rd.forward(request,response);
}
/**
* @åè½ åå°-æ¥è¯¢ææå¾ç
*/
public void adminSelectPhoto(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PhotoDao photoDao=new PhotoDao();
List photoList=photoDao.queryPhoto("all");
request.setAttribute("photoList", photoList);
RequestDispatcher rd=request.getRequestDispatcher("/admin/photo/PhotoList.jsp");
rd.forward(request,response);
}
/**
* @åè½ æ¥çæ个å¾ç详ç»å 容
*/
public void singlePhoto(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PhotoDao photoDao=new PhotoDao();
String strId=request.getParameter("id");
int id=MyTools.strToint(strId);
PhotoBean photoSingle=photoDao.queryPhoto(id);
request.setAttribute("photoSingle",photoSingle);
RequestDispatcher rd=request.getRequestDispatcher("/front/photo/PhotoSingle.jsp");
rd.forward(request,response);
} /**
* @åè½ å é¤å¾ç
*/
public void deletePhoto(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String messages="";
String forward="";
String href="";
RequestDispatcher rd=null;
PhotoDao photoDao= new PhotoDao();
int id = MyTools.strToint(request.getParameter("id"));
String fileAddr=photoDao.queryPhoto(id).getPhotoAddr();
String photoDir=request.getSession().getServletContext().getRealPath("\\");
String delFile=photoDir+fileAddr;
java.io.File file = new java.io.File(delFile);
PhotoBean photoBean = new PhotoBean();
photoBean.setId(id);
if (photoDao.operationPhoto("delete", photoBean)) {
boolean result=file.delete();
if(result){
messages="<li>å é¤ç §çæåï¼</li>";
forward="/admin/success.jsp";
href="<a href='PhotoServlet?action=adminList'>[继ç»å é¤å ¶ä»ç §ç]</a>";
}
else{
messages="<li>å é¤ç §ç失败ï¼</li>";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
} else {
messages="<li>å é¤ç §ç失败ï¼</li>";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
request.setAttribute("messages",messages);
request.setAttribute("href",href);
rd=request.getRequestDispatcher(forward);
rd.forward(request,response);
}
/**
* @åè½ ä¸ä¼ å¾ç
*/
public void addPhoto(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
String filePath = "/front/photo/pic/";
String messages="";
String forward="";
String href="";
PhotoDao photoDao = new PhotoDao();
PhotoBean photoBean = new PhotoBean();
SmartUpload su = new SmartUpload();
long maxsize = 2 * 1024 * 1024; // 设置æ¯ä¸ªä¸ä¼ æ件ç大å°ï¼ä¸º2MB
try {
su.initialize(this.getServletConfig(), request, response);
su.setMaxFileSize(maxsize); // éå¶ä¸ä¼ æ件ç大å°
su.setAllowedFilesList("jpg,gif,bmp"); // 设置å 许ä¸ä¼ çæ件类å
su.upload(); // ä¸ä¼ æ件
String photoInfo=su.getRequest().getParameter("info");
if(photoInfo==null||photoInfo.equals("")){ //éªè¯ç §çæè¿°ä¿¡æ¯ï¼è¥æ²¡æè¾å ¥ï¼åæ示è¾å ¥ç §çæè¿°ä¿¡æ¯
messages="请è¾å ¥ç §çæè¿°ä¿¡æ¯ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
else{
File file = su.getFiles().getFile(0); // è·åä¸ä¼ çæ件ï¼å 为åªä¸ä¼ äºä¸ä¸ªæ件ï¼æ以å¯ç´æ¥è·å
if (!file.isMissing()) { // å¦æéæ©äºæ件
String photoAddr=filePath+photoDao.queryMaxId()+"."+file.getFileExt(); //filePathå¼(front\\photo\\pic\\)+å¾çä¿¡æ¯å¨æ°æ®è¡¨ä¸çidå段å¼+â.â+æ件åç¼å;æåçæä¾å¦âfront\photo\pic\12.bmpâè·¯å¾
String now=MyTools.changeTime(new Date()); //è·åå½åæ¶é´å¹¶æ ¼å¼å为å符串
photoBean.setPhotoAddr(photoAddr);
photoBean.setPhotoTime(now);
photoBean.setPhotoInfo(photoInfo);
boolean mark=photoDao.operationPhoto("upload",photoBean);
if(mark){
try {
file.saveAs(photoAddr,File.SAVEAS_VIRTUAL);
messages="ä¸ä¼ æ件æåï¼";
forward="/admin/success.jsp";
href="<a href='admin/photo/PhotoUpload.jsp'>[继ç»ä¸ä¼ ]</a>";
} catch (SmartUploadException ee) {
messages="ä¸ä¼ æ件失败ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
ee.printStackTrace();
}
}
else{
messages="ä¿åæ件信æ¯å¤±è´¥ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
}
else{
messages="请éæ©è¦ä¸ä¼ çæ件ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}
}
}catch (java.lang.SecurityException e){
messages="<li>ä¸ä¼ æ件失败ï¼ä¸ä¼ çæ件类ååªå 许为ï¼jpg,gif,bmp</li>";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
}catch (SmartUploadException e) {
messages="ä¸ä¼ æ件失败ï¼";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[è¿å]</a>";
e.printStackTrace();
}
request.setAttribute("messages",messages);
request.setAttribute("href",href);
RequestDispatcher requestDispatcher = request.getRequestDispatcher(forward);
requestDispatcher.forward(request, response);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-05-18
在线编缉器,建议用