北京做网站浩森宇特,软件开发必备编程工具,项目经理接到网站开发怎么开展,百度的网址是什么呢只是在办公室又漫长的一天#xff0c;数据库不可用#xff0c;一个团队成员现在滞后一周。 因此#xff0c;我们必须作为一个团队来交付它。 在Spring3#xff0c;它看起来很直接上传文件。 但是#xff0c;从jsp文件上载多个文件几乎没有帮助。 上载多个文件需要完成三件… 只是在办公室又漫长的一天数据库不可用一个团队成员现在滞后一周。 因此我们必须作为一个团队来交付它。 在Spring3它看起来很直接上传文件。 但是从jsp文件上载多个文件几乎没有帮助。 上载多个文件需要完成三件事 aJSP需要将input [file]元素作为数组传递。 tdinput namefileData[0] idimage0 typefile //td
tdinput namefileData[1] idimage1 typefile //td bSpring MVC中的ModelAttribute / Model对象需要具有MultipartFile的列表。 import java.util.List;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
public class UploadItem {private String filename;private ListCommonsMultipartFile fileData; c在dispatcher-servlet.xml [applicationContext-servlet.xml]中配置Multipart Resolver bean !-- Configure the multipart resolver --
bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolver
/bean d从模型读取文件并将其存储在Controller层的文件位置中的逻辑。 RequestMapping(method RequestMethod.POST)
public String create(UploadItem uploadItem, BindingResult result,
HttpServletRequest request, HttpServletResponse response,
HttpSession session) {
if (result.hasErrors()) {
for (ObjectError error : result.getAllErrors()) {
System.err.println(Error: error.getCode() - error.getDefaultMessage());
}
return /uploadfile;
}
// Some type of file processing...
System.err.println(-------------------------------------------);
try {
for(MultipartFile file:uploadItem.getFileData()){
String fileName null;
InputStream inputStream null;
OutputStream outputStream null;
if (file.getSize() 0) {
inputStream file.getInputStream();
if (file.getSize() 20000) {
System.out.println(File Size exceeded::: file.getSize());
return /uploadfile;
}
System.out.println(size:: file.getSize());
fileName request.getRealPath() /images/file.getOriginalFilename();
outputStream new FileOutputStream(fileName);
System.out.println(fileName: file.getOriginalFilename());
int readBytes 0;
byte[] buffer new byte[10000];
while ((readBytes inputStream.read(buffer, 0, 10000)) ! -1) {
outputStream.write(buffer, 0, readBytes);
}
outputStream.close();
inputStream.close();
// ..........................................
session.setAttribute(uploadFile, file.getOriginalFilename());
}
//MultipartFile file uploadItem.getFileData();
}
} catch (Exception e) {
e.printStackTrace();
}
return redirect:/forms/uploadfileindex;
} 我已经扩展了RoseIndia发现的示例以动态创建文件节点并将其发布到Controller。 只需下载源代码并替换下面的jsp文件并进行其他必要的更改 Upload.jsp %page contentTypetext/html;charsetUTF-8%
%page pageEncodingUTF-8%
% page sessionfalse%
% taglib prefixform urihttp://www.springframework.org/tags/form%html
head
META http-equivContent-Type contenttext/html;charsetUTF-8
titleUpload Example/title
script languageJavaScript
var count0;
function add(type) {
//Create an input type dynamically.
var table document.getElementById(fileUploadTable);
var tr document.createElement(tr);
var td document.createElement(td);
var element document.createElement(input);//Assign different attributes to the element.
element.setAttribute(type, file);
element.setAttribute(value, );
element.setAttribute(name, fileData[type]);
//Append the element in page (in span).
td.appendChild(element);
tr.appendChild(td);
table.appendChild(tr);
}
function Validate()
{
var image document.getElementById(image).value;
if(image!){
var checkimg image.toLowerCase();
if (!checkimg.match(/(\.jpg|\.png|\.JPG|\.PNG|\.jpeg|\.JPEG)$/)){
alert(Please enter Image File Extensions .jpg,.png,.jpeg);
document.getElementById(image).focus();
return false;
}
}
return true;
}/script
/head
body
form:form modelAttributeuploadItem namefrm methodpost
enctypemultipart/form-data onSubmitreturn Validate();
fieldsetlegendUpload File/legend
table
tr
input typebutton nameAdd Image onclickadd(count) valueAdd Image/
/tr
tr
table idfileUploadTable
!--tdform:label forfileData pathfileDataFile/form:labelbr /
/td
tdinput namefileData[0] idimage0 typefile //td
tdinput namefileData[1] idimage1 typefile //td--
/table
/tr
tr
tdbr /
/td
tdinput typesubmit valueUpload //td
/tr
/table
/fieldset
/form:form
/body
/html UploadItem.java为私有List fileData;UploadFileController.java生成getter和setter方法然后仅复制并粘贴上面博客中提到的create…。 注意如果在Spring MVC中文件上传仍然遇到问题请添加MultipartFilter。 请参考这里 。 filter
filter-namemultipartFilter/filter-name
filter-classorg.springframework.web.multipart.support.MultipartFilter/filter-class
/filter
filter-mapping
filter-namemultipartFilter/filter-name
url-pattern/springrest/*/url-pattern
/filter-mappingbean idfilterMultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolver
property namemaxUploadSize
value10000000/value
/property
/bean 参考在Bemused博客上从我们的JCG合作伙伴 Srinivas Ovn 在Spring MVC 3中上传多个文件 。 翻译自: https://www.javacodegeeks.com/2013/01/spring-mvc-3-upload-multiple-files.html