成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Struts2多文件上傳思路以及實現

開發 后端
Struts2多文件上傳,比較簡單的思想是,在Action中,通過依賴注入獲取上傳文件的相關屬性,再用 文件輸入流和文件輸出流來把文件存在服務器相關路徑中。當然,由于是多文件上傳,文件的相關屬性是用數組或List來定義的。下面我給個用數組做多文件上傳的例子。

(1)Struts2文件上傳首先是視圖層,用JSP。

頁面文件為:

 upload.jsp

< %@ page contentType="text/html;charset=gb2312" %>
< A href="mailto:%@taglib">%@taglib< /A> prefix="s" uri="/struts-tags"%>
< HTML xhtml? 1999 www.w3.org http: xmlns="< A href=">http://www.w3.org/1999/xhtml< /A>">
< HEAD>




< ?xml:namespace prefix = s />< s:fielderror>< /s:fielderror>


< FORM encType=multipart/form-data method=post action=upload.action>
文件標題< INPUT name=title>

        第一個上傳文件:< INPUT type=file name=upload>

           第二個上傳文件:< INPUT type=file name=upload>

           第三個上傳文件:< I name="upload" type="file" NPUT>

< INPUT value=上傳 type=submit>
< /FORM>

(2)控制器Action

package com.wing.study.upload;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
public class UploadAction extends ActionSupport
{
   private String title;
   private File[] upload;
   private String[] uploadContentType;
   private String[] uploadFileName;
   private String savePath;
   public void setSavePath(String value)
   {
    this.savePath=value;
   }
   public String getSavePath()
   {
    return ServletActionContext.getRequest().getRealPath(savePath);
   }
   public void setUpload(File[] upload)
   {
    this.upload=upload;
   }
   public File[] getUpload()
   {
    return upload;
   }
   public void setTitle(String title)
   {
    this.title=title;
   }
   public String getTitle()
   {
    return title;
   }
   public void setUploadContentType(String[] uploadContentType)
   {
    this.uploadContentType=uploadContentType;
   }
   public String[] getUploadContentType()
   {
    return (this.uploadContentType);
   }
   public void setUploadFileName(String[] uploadFileName)
   {
    this.uploadFileName=uploadFileName;
   }
   public String[] getUploadFileName()
   {
    return (this.uploadFileName);
   }
   public String execute() throws Exception
{
    for(int i=0;i    {
   FileOutputStream fos = new FileOutputStream(getSavePath()

+ "\\" + getUploadFileName()[i]);
   FileInputStream fis = new FileInputStream(getUpload()[i]);
   byte[] buffer = new byte[1024];
   int len = 0;
   while ((len = fis.read(buffer)) > 0)
   {
    fos.write(buffer , 0 , len);
   }
    }
       return SUCCESS;
}
}

 

(3)struts.xml配置文件

這里需要控制文件類型和大小。也就是上傳文件過濾。

我在這里不采用手動過濾,因為手動過濾要書寫大量過濾代碼,開發復雜。

所以這里用上傳文件攔截器來控制。

< ?xml version="1.0" encoding="UTF-8"?>

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "< A >

< STRUTS>
    < CONSTANT value="globalMessages" name="struts.custom.i18n.resources" />
< CONSTANT value="GBK" name="struts.i18n.encoding" />

< PACKAGE name="com" extends="struts-default">

   < ACTION class=com.wing.study.upload.UploadAction name="upload">
   < INTERCEPTOR-REF name="fileUpload">
    < PARAM name="allowedTypes">image/bmp,image/jpeg,image/gif,image/png< /PARAM>
    < PARAM name="maximumSize">202400< /PARAM>
    < /INTERCEPTOR-REF>
    < INTERCEPTOR-REF name="defaultStack" />
            < PARAM name="savePath">/upload< /PARAM>
            < RESULT name="input">/upload.jsp< /RESULT>       
    < RESULT>/succ.jsp< /RESULT>
   < /ACTION> 
< /PACKAGE>
< /STRUTS>

注意 使用了上傳文件攔截器,必須顯示的調用默認攔截器棧:defaultStack.

allowedTypes和maximumSize分別過濾文件的類型和大小。

當上傳文件不符合定義的要求時,會轉向邏輯視圖input,然后根據映射轉向物理視圖upload.jsp

然后根據Struts2標簽s:fielderror輸出錯誤信息。當然這里的錯誤信息你可能不知道是什么。不過可以在國際化資源中將錯誤信息用中文替代。

當上傳文件符合定義的要求時,會轉向succ.jsp

這里給出succ.jsp代碼。

< %@ page language="java" contentType="text/html; charset=GBK"%>
<< A href="mailto:%@taglib">%@taglib< /A> prefix="s" uri="/struts-tags"%>
< HTML>
   
       
   
   
        上傳成功!

   文件標題:< ?xml:namespace prefix = s />< s:property value=" + title">< /s:property>

                    第一個文件為:"/>

                     第二個文件為:"/>

                     第三個文件為:"/>

   

上傳成功后,會依次顯示你上傳的圖片。通過s:property標簽來獲取圖片地址。


由上面可以看出,通過Struts2來實現文件的上傳甚至是多文件上傳,并不難。

 

PS:我做的手機帶BOSS射擊類游戲,目前已經制作了240*320和128*160分辨率的。沒辦法,開發模擬器很少能找到128*160分辨率的,所以我先做的240*320的 然后給朋友測試。但是我的手機又是128*160分辨率的,不能在自己手機上用還是很不樂意的。。所以又用手機測試開發的128*160分辨率。

另外關于RPG游戲的戰斗系統和人物菜單系統基本完成。等我把對話系統弄好,就開始開發RPG游戲。

不久前用Swing做了一個類QQ聊天工具的客戶端和服務器端。在同學那里測試可以聊天。但是還是未完成版的。

還做了個簡單的虛擬桌面,也是Swing做的,集成了我開發的一些小軟件在里面。


有人可能會覺得奇怪,為什么我會花時間做JAVA桌面應用。

我只是不想像某些JAVA程序員一樣,聽說JAVA桌面不行,便不去學習。這也是我對中國程序員感到的一絲悲哀。你說JAVA不能開發游戲,但是偏偏國外就有那么多JAVA 3D的網絡游戲,并且在運營中。

每當我聽見他們說不用學這個不用學那個,就有點憤怒。也許正像大家說的,沒有最好的計算機語言,只有最好的程序員。即使是這樣,我想,優秀的程序員,在中國,可能絕無僅有了。

下面是截圖:

桌面圖標可以隨意拖動,第一次使用的時候,會創建一個文件夾根目錄,用來保存一些信息。這只是非常簡單的一個東西。因為我還要花時間做Struts2,Java ME和Java FX.

截圖創建根目錄截圖""

【編輯推薦】

  1. 在Eclipse中開發struts應用程序
  2. 手把手教你在Eclipse中配置開發Struts
  3. Eclipse下開發struts完整解決亂碼問題
  4. Struts相關背景介紹
  5. 使用Easy Struts for Eclipse開發Struts
責任編輯:張燕妮 來源: 百度空間
相關推薦

2009-06-04 09:41:50

struts2上傳文件

2009-06-04 08:45:01

Struts2下載

2009-06-25 15:50:03

Struts2教程上傳任意多個文件

2009-02-04 14:00:59

2009-06-04 08:01:25

Struts2攔截器原理

2009-06-05 09:58:20

struts2驗證用戶注冊

2009-06-08 16:44:00

2009-06-04 08:34:24

Struts2配置struts.xml

2009-07-29 09:54:34

struts2和str

2009-06-25 15:11:28

Struts2教程Struts2程序

2009-06-03 15:57:29

Struts1.2動態多文件

2011-04-28 09:52:04

Struts2

2012-04-25 10:14:40

JavaStruts

2011-06-28 09:14:23

Struts 2WebWork

2009-06-05 10:52:45

struts2深入詳解配置文件

2009-02-04 10:51:07

2009-07-03 09:35:57

Struts2 JSP

2011-05-05 10:16:06

struts2

2009-06-05 10:55:07

struts2 web

2009-06-26 13:46:13

Struts
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看国产wwwa级羞羞视频 | 国产视频导航 | 国产精品一区一区三区 | 国产高清免费视频 | 一区二区三区高清在线观看 | 精品一区二区三区入口 | 国产精品视频不卡 | 亚洲 精品 综合 精品 自拍 | 久久久久久国产精品免费免费男同 | 日韩高清一区 | 国产精品高潮呻吟久久av黑人 | 国产日韩精品视频 | 色综合色综合色综合 | 日韩精品一区二区三区在线播放 | 亚洲在线一区 | 天天射夜夜操 | 国产精品视频在线观看 | 欧美一区二区免费 | 国产伦精品一区二区三区精品视频 | 欧美中文字幕一区二区三区 | 欧美精品一区二区三区在线播放 | 精品乱码一区二区三四区 | 午夜精品 | 亚洲视频欧美视频 | 久久专区 | 欧美一级特黄aaa大片在线观看 | 成人精品鲁一区一区二区 | 国产成人精品免高潮在线观看 | 亚洲一区中文字幕在线观看 | 黄色91在线 | 中文在线播放 | 亚洲视频一区 | 亚洲免费一区二区 | 亚洲男女视频在线观看 | 国产精品久久久久久久久图文区 | 欧美日韩黄 | 国产精品一二三区 | 久久久久国产 | 欧美一区二区三 | 久久久国产精品 | 国产精品毛片久久久久久 |