- boolean isMultipart = ServletFileUpload.isMultipartContent(request);
- if (!isMultipart) {
- goto.....
- return;
- }
- // Create a new file upload handler
- ServletFileUpload upload = new ServletFileUpload();
- // Parse the request
- FileItemIterator iter = upload.getItemIterator(request);
- while (iter.hasNext()) {
- FileItemStream item = iter.next();
- String name = item.getFieldName();
- InputStream stream = item.openStream();
- if (item.isFormField()) {
- System.out.println("Form field " + name + " with value "
- + Streams.asString(stream) + " detected.");
- } else {
- System.out.println("File field " + name + " with file name "
- + item.getName() + " detected.");
- // Process the input stream
- ...
- }
- }
- 具体上传服务器例子:
- boolean isMultipart = ServletFileUpload.isMultipartContent(request);
- if (!isMultipart) {
- //goto
- return;
- }
- DiskFileItemFactory dff = new DiskFileItemFactory();
- try {
- ServletFileUpload sfu = new ServletFileUpload(dff);
- sfu.setSizeMax(10000*1024);
- sfu.setHeaderEncoding("utf-8");
- FileItemIterator fii = sfu.getItemIterator(request);
- while (iterator.hasNext()) {
- fileStream = iterator.next();
- if (!fileStream.isFormField())
- break;
- fileStream = null;
- }
- if (fileStream == null) {
- return new BaseState(false, 7);
- }
- String savePath ="保存服务器路径";
- String originFileName = fileStream.getName();
- String suffix = FileType.getSuffixByFilename(originFileName);
-
- originFileName = originFileName.substring(0,
- originFileName.length() - suffix.length());
- savePath = savePath + suffix;
-
- long maxSize = ((Long) conf.get("maxSize")).longValue();
-
- if (!validType(suffix, (String[]) conf.get("allowFiles"))) {
- return new BaseState(false, 8);
- }
- savePath = PathFormat.parse(savePath, originFileName);
- String physicalPath = "路径" + savePath;
- InputStream is = fileStream.openStream();
- FileOutputStream out = new FileOutputStream(new File(physicalPath);
- BufferedOutputStream output = new BufferedOutputStream(out);
- Streams.copy(in, output, true);
复制代码 |