<em id="lwy0s"></em>
      1. <div id="lwy0s"></div>
      2. 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.40288265.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("http://.")[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&nbsp;誰才能主宰未來?  下一篇:從網頁源文件中得到鏈接
        北京11选5技巧

            <em id="lwy0s"></em>
          1. <div id="lwy0s"></div>

                <em id="lwy0s"></em>
              1. <div id="lwy0s"></div>