Struts1.3中图片上传后直接显示
因为毕业设计需要,今天晚上看了看Struts1.3中的FormFile机制。顺便从网上看了看如何在上传后直接在页面中显示刚传上的图片。 总结下,顺便分享下。先声明,我还是学习阶段,有哪些地方做得不很好欢迎指正批评啊!!互相校习嘿
我用的是MyEclipse6.0.1和Tomcat6(具体记不得了)
首先自己建立了一个Upload的工程。添加struts1.3支持。。。。。废话不说了啊。直接代码
建立一个upload.jsp页面 代码如下:
程序代码:
图片上传
清选择需要上传图片:
建立于此jsp对应的form于action 具体form代码我就不贴了。不难。里面也没什么东西。只有这一点: private FormFile pic; 和它的geter & seter在action中要用到。这是得到上传文件的途径。
action的代码贴一下吧。
程序代码://包名
package com.llb.struts.action;
//引入。。。不说废话了
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.upload.FormFile;
import com.llb.struts.form.UploadForm;
public class UploadAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UploadForm uploadForm = (UploadForm) form; //从uploadform中得到定义的一个
FormFile ff = uploadForm.getPic(); //从uploadform中得到定义的一个pic
//定义自己的穿到服务器的文件名。第二个+后面是得到的文件后缀名。
String filename = uploadForm.getName() + “.”
+ (ff.getFileName().split(“\\.”)[1]);
//得到要上传到的绝对路径,比如: D:\tomcat6\webapps\Upload\upload
String path = this.getServlet().getServletContext().getRealPath(“/”) + “upload\\”;
//这是为在页面上显示此图片定义的相对路径吧应该是。这里得到的是 “upload/图片文件名”
String files = “upload/” + filename;
//将相对路径写入request里面以便在Forward之后用EL来调用
request.setAttribute(“files”, files);
try {
//下面是上传文件的具体写入:都是IO不用多说了
OutputStream os = new FileOutputStream(new File(path + filename));
byte b[] = ff.getFileData(); //这里的ff是从form得来的要上传的文件
os.write(b);
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return mapping.getInputForward();
}
}
}
剩下的都没什么了。我没有写验证。先实现了再说。呵呵,回头毕业设计里再加上吧。
快4点半了。困了。先睡了。
希望对大家能有帮助啊!!