<strong id="33j4t"><kbd id="33j4t"></kbd></strong><span id="33j4t"><pre id="33j4t"></pre></span>
<em id="33j4t"></em>
    1. 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.yctjnk.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;誰才能主宰未來?  下一篇:從網頁源文件中得到鏈接
      亚洲第一网站男人都懂2021,中文字幕无码久久精品,大胸美女又黄又w网站,全免费a级毛片免费看