1. struts2環境を構築します
myeclipseでは、プロジェクトを右クリックします - > myeclipse->プロジェクトファセット - > apache struts2をインストールします。
自分で構築する場合は、Struts2パッケージをダウンロードして、struts.xml構成ファイルを書き込む必要があります。
web.xmlファイルの構成は次のとおりです。
<filter> <filter-name> struts2 </filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter </filter-class> </filter> <filter-mapping> <filter-name> struts2 </filtername> <urlterthing>
2。ファイルアップロード
1。フロントデスクページ:
アップロードページ:
<body> <form action = "upload.action" method = "post" enctype = "multipart/form-data"> <入力タイプ= "ファイル" name = "upload"/> <入力タイプ= "submit" value = "submit"/> <br> $ {result} </form> </body>入力名属性は、バックグラウンドネーミングと一致しています。
失敗したページをアップロード:
<Body> <H2>アップロード障害</h2> <S:Fielderror> </s:Fielderror> </body>
必要:
<%@ taglib uri = "/struts-tags" prefix = "s"%>
2。バックエンドアクション
メインプロパティアップロード、uploadContentType、uploadFileName。
パッケージcom.yf.action; Import java.io.file; Import org.apache.commons.io.fileutils; Import org.apache.struts2.servletactionContext; Import com.opensymphony.xwork2.actionsupport; public class uploadaction extends ActionSupport {private file upload;プライベート文字列uploadContentType;プライベート文字列uploadFileName;プライベート文字列結果; public file getuoload(){return upload; } public void setupload(file upload){this.upload = upload; } public string getuploadContentType(){return uploadContentType; } public void setuploadContentType(String uploadContentType){this.uploadContentType = uploadContentType; } public string getuploadfileName(){return uploadFileName; } public void setuploadfileName(String uploadFileName){this.uploadfileName = uploadFileName; } public string getResult(){return result; } public void setResult(string result){this.result = result; } @Override public String execute()throws exception {string path = servletactionContext.getServletContext()。getRealPath( "/images"); file file = new file(path); if(!file.exists()){file.mkdir(); } system.out.println(upload); fileutils.copyfile(upload、new file(file、uploadFileName)); result = "アップロードされた";成功を返す; }}3.Struts.xmlファイル構成
アクションを構成し、アップロードされたファイルのタイプとサイズを制限するようにインターセプターを構成します。
<?xml version = "1.0" encoding = "utf-8"?> <!doctype struts public " - // apacheソフトウェア財団// dtd struts構成value = "false"/> <constant name = "struts.devmode" value = "true"/> <constant name = "struts.multipart.savedir" value = "/> <constant name =" struts.custom.i18n.resources "value =" app "> </constant> <パッケージ=" defayourt = "/< name = "upload"> <sults>/index.jsp </result name = "input">/error.jsp </result> <! - アップロードされたファイルのタイプとサイズを制限するようにインターセプターを構成 - > <interceptor-ref name = "fileupload"> <param name = "aboldtypes">画像/bmp name = "Maximumsize"> 2m </param> </interceptor-ref> <interceptor-ref name = "defaultStack"> </interceptor-ref> </action> </package> </struts>
4.新しいプロパティファイルを作成します
ファイルのアップロード障害情報が前景に表示され、処理時にエラーメッセージが表示されます。
ファイルの内容は次のとおりです。
struts.messages.error.file.too/large =/u4e0a/u4f20/u6587/u4ef6/u592a/u5927/u4e86/uff01struts.m ESSAGES.ERROR.CONTENT.TYPE.NOT.ALLOWED =/U4E0A/U4F20/U6587/U4EF6/U7B/U578B/U4E0D/U7B26/UFF01
それは追加することです:
名前:struts.messages.error.file.too/large
値:アップロードファイルが大きすぎます!
名前:struts.messages.error.content.type.not.allowed
値:アップロードされたファイルタイプが一致しません!
操作結果は次のとおりです。
JPG画像を選択してください、実行後、サイズは2mを超えません
非ピクチャファイルを選択します。
ファイルをバッチにアップロードする必要がある場合は、バックグラウンドアップロード、uploadContentType、およびuploadFileNameをリストし、ループのアップロードファイルを読み取り、ハードディスクに保存し、フロントデスクに入力を追加し、名前属性は同じです。
上記は、編集者によって導入されたstruts2ファイルアップロード機能の例の例です。私はそれが誰にでも役立つことを願っています。ご不明な点がございましたら、メッセージを残してください。編集者は、すべての人に時間内に返信します!