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中圖片上傳后直接顯示

部落冲突安卓版下载 2015-09-03 //www.fkutc.icu

原帖及討論://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="//struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="//struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="//struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="//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點半了。困了。先睡了。
希望對大家能有幫助?。?!

 

 

 
說明
:本教程來源互聯網或網友上傳或出版商,僅為學習研究或媒體推廣,www.fkutc.icu不保證資料的完整性。
 
上一篇:Java與.NET&nbsp;誰才能主宰未來?  下一篇:從網頁源文件中得到鏈接