Javaのアップロードファイル

5137 ワード

1. annotations are only available if source level is 5.0
Project->Properties->Java Compiler->「enable project sepecific settings」チェックボックスをオフにし、「Configure Workspace settings...」->Compiler Compliance Level 5.0以上のjdkバージョンを選択します.
2. The public type FileUploadAction111 must be defined in its own file
クラス名とファイル名が一致しません.
    MyEclips環境では、javaクラスファイルは保存するだけでコンパイルされ、追加のコンパイル操作は必要ありません.
3.getter、setterの自動生成
方法1:右クリック->source->Generate setter and getter;
方式2:Ctrl+Shift+S->Generate setter and getter;
4.ファイルアップロード
1.jspファイルのformは必ず追加する
<s:form action="myUserInfo/FileUpload" enctype="multipart/form-data">

2.getUploadFileNameのメソッドは、ファイル名ではなく指定したアップロードフォルダを含むパスを返します.たとえばstrutsで/uploadを指定すると、getUploadFileNameはD:JavaSpaceHelloWorldWebRootuploadを返します.ファイル名については自分で起きる必要があります.この場所には問題があるかもしれません.まだ検討しています.アップロードされたファイル名を偶発的に取得できる場所が少ないからです.FileオブジェクトのgetNameで返される「upload__74d 3 cd 57_13 f 45 fcf 15 f__8000_00000000.tmp」は、名前として使用できません.
3.考え方:
まず、バックグラウンドでは、ストリームを保存するプログラムと対応する属性の定義(get/setUploadFileName,get/setUpload,get/setSavePath)を完了する必要があります.
    @Override
public String execute() throws Exception{
FileOutputStream fos = new FileOutputStream(this.getUploadFileName() + "\\" + this.upload.getName());
FileInputStream fis = new FileInputStream(this.getUpload());
byte[] buff = new byte[1024];
int len = 0;
while((len = fis.read(buff)) > 0){
fos.write(buff, 0, len);
}

fos.close();
return SUCCESS;
}
 private String getSavePath() throws Exception 
{
return ServletActionContext.getServletContext()
.getRealPath(savePath);
}

次に、プロファイルはアップロードのパスを指定する必要があります(savePathの定義、バックグラウンドで適切な読み取り定義を書く必要があります(上記getSavePath):
       <action name="FileUpload" class="mySpace.FileUploadAction">
<param name="savePath">/upload</param>
<result name="success">/helloWorld.jsp</result>
<result name="input">/Error.jsp</result>
</action>

最後に、フロントに必要な宣言formはバイナリストリームとFileコントロールを送信します.
    <s:form action="myUserInfo/FileUpload" enctype="multipart/form-data">
<s:file name="upload" label=" "/>
<s:submit value=" "/>
    </s:form>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }