2012-06-12 3 views
1

Мы используем Struts2 в нашем приложении, и я использую функцию загрузки struts2 для загрузки файлов. Теперь мое требование: мы должны позволить пользователю загрузиться в «.docx» и «.xlsx». Я перечислил «application/msword» и «application/vnd.ms-excel» как allowedTypes в strut.xml. При этом мы можем загрузить только Файлы «.doc» и «.xls», но не Файлы «.docx» и «.xlsx». Есть ли обходной путь для этого?Как загрузить файлы Microsoft Word .docx и .xlsx с помощью Struts2

+0

Это то, что вы сказали об этом. Эти типы mime недопустимы для форматов docx или xlsx. Обратитесь к запросу nmc. –

ответ

3

От http://sanjaal.com/java/tag/microsoft-office-2010-mime-types/

Ниже перечислены типы MIME, которые будут использоваться для MS Office 2010 форматов файла документа.

.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 
0

Вы можете сделать это, подтвердив имя файла в действиях, которые обрабатывают загруженные файлы. Например:

private File attachement; 

... 
public void validate() { 
    if (attachement.getName().endsWith(".docx") || (attachement.getName().endsWith(".xlsx"))) 
    addActionError(...); 
}