アプリケーションで Struts2 を使用しており、ファイルのアップロードに struts2 アップロード機能を使用しています。私の要件は、ユーザーが「.docx」と「.xlsx」にアップロードできるようにする必要があるということです。strut.xml のように「application/msword」と「application/vnd.ms-excel」をallowedTypes
記載しました。これにより、「.doc」および「.xls」ファイルのみをアップロードできますが、 「.docx」および「.xlsx」ファイルはアップロードできません。これに対する回避策はありますか?
2851 次
2 に答える
3
http://sanjaal.com/java/tag/microsoft-office-2010-mime-types/より
以下は、MS Office 2010 ドキュメント ファイル形式に使用される MIME タイプです。
.docm: application/vnd.ms-word.document.macroEnabled.12
.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document
.dotm: application/vnd.ms-word.template.macroEnabled.12
.dotx: application/vnd.openxmlformats-officedocument.wordprocessingml.template
.potm: application/vnd.ms-powerpoint.template.macroEnabled.12
.potx: application/vnd.openxmlformats-officedocument.presentationml.template
.ppam: application/vnd.ms-powerpoint.addin.macroEnabled.12
.ppsm: application/vnd.ms-powerpoint.slideshow.macroEnabled.12
.ppsx: application/vnd.openxmlformats-officedocument.presentationml.slideshow
.pptm: application/vnd.ms-powerpoint.presentation.macroEnabled.12
.pptm: application/vnd.ms-powerpoint.presentation.macroEnabled.12
.pptx: application/vnd.openxmlformats-officedocument.presentationml.presentation
.xlam: application/vnd.ms-excel.addin.macroEnabled.12
.xlsb: application/vnd.ms-excel.sheet.binary.macroEnabled.12
.xlsb: application/vnd.ms-excel.sheet.binary.macroEnabled.12
.xlsm: application/vnd.ms-excel.sheet.macroEnabled.12
.xlsx: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xltm: application/vnd.ms-excel.template.macroEnabled.12
.xltx: application/vnd.openxmlformats-officedocument.spreadsheetml
.xps: application/vnd.ms-xpsdocument
于 2012-06-12T14:26:14.517 に答える
0
アップロードされたファイルを処理するアクションでファイル名を検証することで、これを行うことができます。例えば:
private File attachement;
...
public void validate() {
if (attachement.getName().endsWith(".docx") || (attachement.getName().endsWith(".xlsx")))
addActionError(...);
}
于 2012-06-12T15:33:29.283 に答える