网站广告管理 就是, 在首页显示的广告的一些图片, 在后台进行管理..
效果:
主页 : 途中的 ad1 l1 l2 r1 r2 为广告的五张图片, 点击跳到相应的链接处
管理页 效果:
实现方式:
1) 数据库结构
在数据库里面 定义好每个广告的name
然后后台上传图片的时候修改的是 广告图片地址, 和点击广告图片 跳转到的页面
2) 管理页面代码:
<form id="form1" action="editad" method="post" enctype="multipart/form-data"
>
在此设置在首页显示的横幅广告. 广告图片最好为 950*100大小.<br /> <input
type="hidden" value="${adname }" name="adname" /><br /> 上传广告图片:<input
type="file" name="upFile" id="upfile" /><br />
广告链接地址:<input type="text" id="linkWeb" name="linkWeb" value="${linkWeb }" /> <br />
<input type="button" value="提交" οnclick="checkFile()" />
</form>
3) 管理页面提交后的后台处理:
private String upFileFileName;
private String upFileContentType;
private File upFile;
private String adname;
private String picAdd;
private String linkWeb;
public String execute() throws Exception {
// TODO Auto-generated method stub
Advertisement ad = manager.findAd(adname);
String oldpicAdd = ad.getPicAdd();
ad.setLinkWeb(linkWeb);// 存放图片链接地址
// 把 图片路径放到对象中
String strPath = ServletActionContext.getServletContext().getRealPath(
"admin/AdImages");
// System.out.println(strPath);
// D:\tomcat6My8082\webapps\Myblog\admin\AdImages
File path = new File(strPath);
if (!path.exists()) {
path.mkdirs();
}
String uuid = UUID.randomUUID().toString();
String rt[] = upFileFileName.split("\\.");// 把文件名 abc.jpg 分成 rt[0]="abc"
// rt[1]="jpg"
// System.out.println(rt[1]);
// 用uuid 随机代替"abc"
upFileFileName = new String(uuid + "." + rt[1]);//
InputStream is = new FileInputStream(upFile);
OutputStream os = new FileOutputStream(new File(path + "/"
+ upFileFileName));
String headurl = "admin/AdImages" + "/" + upFileFileName;
headurl = headurl.replace('\\', '/');
// ActionContext.getContext().put("headurl", headurl);
System.out.println(headurl);// 存放图片路径
ad.setPicAdd(headurl);
manager.saveAd(ad);
try {
int len;
byte[] buffer = new byte[1024];
while ((len = is.read(buffer)) > 0) {
os.write(buffer, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
}
// 删除上一次上传的广告图片
String oldpath = ServletActionContext.getServletContext().getRealPath(
oldpicAdd);
System.out.println(oldpath);
File oldfile = new File(oldpath);
System.out.println(oldpath);
System.out.println(oldfile.isFile());
System.out.println(oldfile.exists());
if (oldfile.isFile() && oldfile.exists()) {
oldfile.delete();
}
return adname;
}
上传完成, 这个action执行完毕转到另外一个action (2中从action转到action 方法)
<!--redirectAction 在同一个包下 .action可以省略 -->
<result name="success" type="redirectAction">hp</result>
<!--redirect 在不同包下可以, .action不可以省略 -->
<!-- <result name="success" type="redirect">hp.action</result> -->
4)查看主页,查找广告图片的相关信息 图片地址和链接地址
private String picAdd_l1;
private String linkWeb_l1;
private String picAdd_l2;
private String linkWeb_l2;
private String picAdd_r1;
private String linkWeb_r1;
private String picAdd_r2;
private String linkWeb_r2;
private String hpad1_link;
private String hpad1_picAdd;
public void readAd(){
Advertisement adl1 = manager.findAd("duilian_l1");
Advertisement adl2 = manager.findAd("duilian_l2");
Advertisement adr1 = manager.findAd("duilian_r1");
Advertisement adr2 = manager.findAd("duilian_r2");
Advertisement hpad = manager.findAd("hpad1");
picAdd_l1 = adl1.getPicAdd();
linkWeb_l1 = adl1.getLinkWeb();
picAdd_l2 = adl2.getPicAdd();
linkWeb_l2 = adl2.getLinkWeb();
picAdd_r1 = adr1.getPicAdd();
linkWeb_r1 = adr1.getLinkWeb();
picAdd_r2 = adr2.getPicAdd();
linkWeb_r2 = adr2.getLinkWeb();
hpad1_picAdd = hpad.getPicAdd();
hpad1_link = hpad.getLinkWeb();
}
5) 主页显示:
<div id="ad1">
<a href="${hpad1_link }" target='_blank'><img
src="<%=basePath%>${hpad1_picAdd }" width="950" height="100"
border="0" />
</a>
</div>