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中图片上传后直接显现

188bet.com网 2015-09-03 http://www.pvc01.com

原帖及评论: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" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  <head>
    <html:base />
   
    <title>图片上传</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
      清挑选需求上传图片:
      <html:form action="upload.do" method="post" enctype="multipart/form-data">
    <html:text property="name"></html:text>
    <html:file property="pic"></html:file>
    <html:submit value="上传"></html:submit><br/>
    <html:errors/>
    </html:form>
    <img alt= " "  src="${files }" />    <!--留意这儿用力一个EL句子并且这儿的files是在request中的,并且这  个"files"途径只能是“图片地点的文件夹/图片称号”这个文件夹有必要和WEB-INF是并排的(在csdn上一个帖子上看到的)。比方我就在我的工程下树立了一个"upload"文件夹。 上传的文件称号为sonw.bmp然后这儿src="upload/snow.bmp"-->
                      <br/>
  </body>
</html:html>

树立于此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点半了。困了。先睡了。
期望对我们能有协助啊!!

 

 

 
阐明
:本教程来历互联网或网友上传或出版商,仅为学习研讨或媒体推行,pvc01.com不确保材料的完整性。
 
上一篇:Java与.NET&nbsp;谁才干操纵未来?  下一篇:从网页源文件中得到链接