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

2366 ワード

まずフォームのfromの書き方はこうです.
1
2
3
4
5 < from   action = "File_add.action"   method = "post"   enctype = "multipart/form-data" >      FileName:< input   type = "text"   name = "fileName" >      File:< input   type = "file"   name = "file" >      < input   type = "submit"   value = "Sub" > </ from >
ここでenctype=「multipart/from-data」とは、アップロードバイナリストリームを指す
 
ActionオブジェクトにFileタイプのfileとStringタイプのfile Nameを設定し、getter&&setterメソッドを提供します.
それから常識に従って、私達はfileを得ることができて、しかし正常に得ることができて、add方法のreturnで1つのブレークポイントを打って、debugモードで起動して、fileの中ですでに値があることを見ることができて、しかし名前は読めなくて、しかもこのアップロードファイルのタイプは1つの.tempの一時的なタイプです.

次に、ファイル名とタイプ名を解析します.
Strutsはgetter&&setterを提供する必要があります.  次のようになります. プロパティのfile+FileName およびfile+ContentType  このような組み合わせ名:eg:fileFileName およびfile ContentType このような名前で、getter&&setterを提供します.
次にaddメソッドで印刷します:System.out.println(fileFileName+fileContentType); 通常のファイル名を印刷できます
 
最後に、ファイルはシステム内でtempの一時ファイルであり、他の場所に転送する必要があります.
    fileのioストリームは使用できますが、簡単に使用できます.
1
2 //FileUtils.copyFile("file","dest");    , FileUtils.copyFile(file, new   File( "H:/temp/" +fileFileName));
注意:スラッシュは逆さまに書かないでください. これにより、ローカルディスクのHディスクに転送できます.
 
また、大きなファイル、例えば2 Mを超えるファイルについては、Strutsがデフォルトで2兆点以上のファイルしかアップロードできないため、異常が発生します.
設定方法は、struts.defultファイルを開き、struts.multipart.maxSize=xxxx
次に、Struts.xmlファイルに通常の明るさを追加します.
 最大10 Mのファイルをサポートできるようになりました.