AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
?首页?>?JAVA编程

Struts1.3中图片上传后直接显示

51自学网 2015-09-03 http://www.51zixue.net

原帖及讨论:http://bbs.bccn.net/thread-207313-1-1.html

因为毕业设计需要,今天晚上看了看Struts1.3中的FormFile机制。顺便从网上看了看如何在上传后直接在页面中显示刚传上的图片。 总结下,顺便分享下。先声明,我还是学习阶段,有哪些地方做得不很好欢迎指正批评啊!!互相校习嘿
我用的是MyEclipse6.0.1和Tomcat6(具体记不得了)
首先自己建立了一个Upload的工程。添加struts1.3支持。。。。。废话不说了啊。直接代码

建立一个upload.jsp页面 代码如下:
<%@ page language="java" pageEncoding="gbk"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>




??
? ?
? ?
? ? 图片上传

????
????
????? ?
????
????
????

??
??
??
??????清选择需要上传图片:
??????
? ?
? ?
? ?

? ?
? ?

? ?  ? ?
? ?? ?? ?? ?? ?? ?? ?

??

建立于此jsp对应的form于action? ?具体form代码我就不贴了。不难。里面也没什么东西。只有这一点:? ?? ? private FormFile pic; 和它的geter & seter在action中要用到。这是得到上传文件的途径。

action的代码贴一下吧。
//包名
package com.llb.struts.action;

//引入。。。不说废话了
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

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点半了。困了。先睡了。
希望对大家能有帮助啊!!

?

 

 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,51zixue.net不保证资料的完整性。
 
上一篇:Java与.NET 谁才能主宰未来?? 下一篇:从网页源文件中得到链接