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.0532cf.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;誰才能主宰未來?  下一篇:從網頁源文件中得到鏈接
彩客网 陕西西安 | 山西太原 | 锡林郭勒 | 泰安 | 诸城 | 顺德 | 枣阳 | 甘南 | 海南 | 沭阳 | 张家界 | 宜昌 | 三亚 | 徐州 | 曹县 | 荆门 | 铜仁 | 衡阳 | 萍乡 | 东阳 | 吉林长春 | 乐清 | 荆州 | 安吉 | 武安 | 肥城 | 晋城 | 丹东 | 双鸭山 | 迪庆 | 甘孜 | 忻州 | 喀什 | 乐山 | 铜陵 | 泰安 | 江门 | 乌兰察布 | 明港 | 安吉 | 那曲 | 舟山 | 丽水 | 定安 | 肇庆 | 偃师 | 兴安盟 | 菏泽 | 东阳 | 仁怀 | 威海 | 乌兰察布 | 泰安 | 沧州 | 简阳 | 巴音郭楞 | 阿坝 | 七台河 | 淮北 | 吴忠 | 吴忠 | 贵港 | 安顺 | 乳山 | 辽源 | 武安 | 七台河 | 博尔塔拉 | 铜川 | 明港 | 呼伦贝尔 | 四川成都 | 安顺 | 定州 | 燕郊 | 海西 | 梅州 | 邹城 | 景德镇 | 建湖 | 广饶 | 安顺 | 汕尾 | 揭阳 | 濮阳 | 涿州 | 扬中 | 玉林 | 商洛 | 福建福州 | 金坛 | 海门 | 瓦房店 | 南安 | 果洛 | 昌吉 | 宜宾 | 张家界 | 甘孜 | 黄石 | 西双版纳 | 林芝 | 台中 | 宜都 | 锦州 | 临猗 | 枣庄 | 黄山 | 项城 | 吐鲁番 | 扬中 | 柳州 | 任丘 |