Example usage for org.springframework.web.multipart MultipartRequest getFileNames

List of usage examples for org.springframework.web.multipart MultipartRequest getFileNames

Introduction

In this page you can find the example usage for org.springframework.web.multipart MultipartRequest getFileNames.

Prototype

Iterator<String> getFileNames();

Source Link

Document

Return an java.util.Iterator of String objects containing the parameter names of the multipart files contained in this request.

Usage

From source file:com.laxser.blitz.web.paramresolver.ResolverFactoryImpl.java

@SuppressWarnings("unchecked")
private static Object resolveArray(Invocation inv, ParamMetaData metaData, Class<?> compnentType) {
    if (compnentType == MultipartFile.class) {
        String filterName = metaData.getParamName();
        if (filterName == null) {
            filterName = "";
        }/*from   w ww  . ja  va  2s .c  om*/
        if (inv.getRequest() instanceof MultipartRequest) {
            List<MultipartFile> files = new LinkedList<MultipartFile>();
            MultipartRequest multipartRequest = (MultipartRequest) inv.getRequest();
            Iterator<String> names = multipartRequest.getFileNames();
            while (names.hasNext()) {
                String name = names.next();
                if (name.startsWith(filterName)) {
                    files.add(multipartRequest.getFile(name));
                }
            }
            return files.toArray(new MultipartFile[0]);
        } else {
            if (logger.isDebugEnabled()) {
                logger.debug("cann't " + "set MultipartFile param to method "
                        + ", the request is not a MultipartRequest");
            }
        }
    } else {
        Object toConvert = null;
        for (String paramName : metaData.getParamNames()) {
            if (paramName != null) {
                toConvert = inv.getRequest().getParameterValues(paramName);
                if (toConvert != null) {
                    break;
                }
            }
        }
        if (toConvert != null) {
            if (((String[]) toConvert).length == 1) {
                toConvert = ((String[]) toConvert)[0].split(",");
            }
            Class<?> arrayType;
            if (metaData.getParamType().isArray()) {
                arrayType = metaData.getParamType();
            } else {
                arrayType = arrayTypeMap.get(compnentType);
                if (arrayType == null) {
                    arrayType = Array.newInstance((Class<?>) compnentType, 0).getClass();
                }
            }
            TypeConverter typeConverter = SafedTypeConverterFactory.getCurrentConverter();
            Object array = typeConverter.convertIfNecessary(toConvert, arrayType);
            return array;
        }
    }
    return Array.newInstance((Class<?>) compnentType, 0);
}