📄 jakartamultipartrequest.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: JakartaMultiPartRequest.java
package org.apache.struts2.dispatcher.multipart;
import java.io.*;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
// Referenced classes of package org.apache.struts2.dispatcher.multipart:
// MultiPartRequest
public class JakartaMultiPartRequest
implements MultiPartRequest
{
static final Log log = LogFactory.getLog(org/apache/struts2/dispatcher/multipart/MultiPartRequest);
private Map files;
private Map params;
private List errors;
private long maxSize;
public JakartaMultiPartRequest()
{
files = new HashMap();
params = new HashMap();
errors = new ArrayList();
}
public void setMaxSize(String maxSize)
{
this.maxSize = Long.parseLong(maxSize);
}
public void parse(HttpServletRequest servletRequest, String saveDir)
throws IOException
{
DiskFileItemFactory fac = new DiskFileItemFactory();
fac.setSizeThreshold(0);
if (saveDir != null)
fac.setRepository(new File(saveDir));
try
{
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setSizeMax(maxSize);
List items = upload.parseRequest(createRequestContext(servletRequest));
for (Iterator i$ = items.iterator(); i$.hasNext();)
{
Object item1 = i$.next();
FileItem item = (FileItem)item1;
if (log.isDebugEnabled())
log.debug((new StringBuilder()).append("Found item ").append(item.getFieldName()).toString());
if (item.isFormField())
{
log.debug("Item is a normal form field");
List values;
if (params.get(item.getFieldName()) != null)
values = (List)params.get(item.getFieldName());
else
values = new ArrayList();
String charset = servletRequest.getCharacterEncoding();
if (charset != null)
values.add(item.getString(charset));
else
values.add(item.getString());
params.put(item.getFieldName(), values);
} else
{
log.debug("Item is a file upload");
if (item.getName() == null || item.getName().trim().length() < 1)
{
log.debug((new StringBuilder()).append("No file has been uploaded for the field: ").append(item.getFieldName()).toString());
} else
{
List values;
if (files.get(item.getFieldName()) != null)
values = (List)files.get(item.getFieldName());
else
values = new ArrayList();
values.add(item);
files.put(item.getFieldName(), values);
}
}
}
}
catch (FileUploadException e)
{
log.error(e);
errors.add(e.getMessage());
}
}
public Enumeration getFileParameterNames()
{
return Collections.enumeration(files.keySet());
}
public String[] getContentType(String fieldName)
{
List items = (List)files.get(fieldName);
if (items == null)
return null;
List contentTypes = new ArrayList(items.size());
for (int i = 0; i < items.size(); i++)
{
FileItem fileItem = (FileItem)items.get(i);
contentTypes.add(fileItem.getContentType());
}
return (String[])(String[])contentTypes.toArray(new String[contentTypes.size()]);
}
public File[] getFile(String fieldName)
{
List items = (List)files.get(fieldName);
if (items == null)
return null;
List fileList = new ArrayList(items.size());
for (int i = 0; i < items.size(); i++)
{
DiskFileItem fileItem = (DiskFileItem)items.get(i);
fileList.add(fileItem.getStoreLocation());
}
return (File[])(File[])fileList.toArray(new File[fileList.size()]);
}
public String[] getFileNames(String fieldName)
{
List items = (List)files.get(fieldName);
if (items == null)
return null;
List fileNames = new ArrayList(items.size());
for (int i = 0; i < items.size(); i++)
{
DiskFileItem fileItem = (DiskFileItem)items.get(i);
fileNames.add(getCanonicalName(fileItem.getName()));
}
return (String[])(String[])fileNames.toArray(new String[fileNames.size()]);
}
public String[] getFilesystemName(String fieldName)
{
List items = (List)files.get(fieldName);
if (items == null)
return null;
List fileNames = new ArrayList(items.size());
for (int i = 0; i < items.size(); i++)
{
DiskFileItem fileItem = (DiskFileItem)items.get(i);
fileNames.add(fileItem.getStoreLocation().getName());
}
return (String[])(String[])fileNames.toArray(new String[fileNames.size()]);
}
public String getParameter(String name)
{
List v = (List)params.get(name);
if (v != null && v.size() > 0)
return (String)v.get(0);
else
return null;
}
public Enumeration getParameterNames()
{
return Collections.enumeration(params.keySet());
}
public String[] getParameterValues(String name)
{
List v = (List)params.get(name);
if (v != null && v.size() > 0)
return (String[])(String[])v.toArray(new String[v.size()]);
else
return null;
}
public List getErrors()
{
return errors;
}
private String getCanonicalName(String filename)
{
int forwardSlash = filename.lastIndexOf("/");
int backwardSlash = filename.lastIndexOf("\\");
if (forwardSlash != -1 && forwardSlash > backwardSlash)
filename = filename.substring(forwardSlash + 1, filename.length());
else
if (backwardSlash != -1 && backwardSlash >= forwardSlash)
filename = filename.substring(backwardSlash + 1, filename.length());
return filename;
}
private RequestContext createRequestContext(final HttpServletRequest req)
{
return new RequestContext() {
final HttpServletRequest val$req;
final JakartaMultiPartRequest this$0;
public String getCharacterEncoding()
{
return req.getCharacterEncoding();
}
public String getContentType()
{
return req.getContentType();
}
public int getContentLength()
{
return req.getContentLength();
}
public InputStream getInputStream()
throws IOException
{
return req.getInputStream();
}
throws IOException
{
this$0 = JakartaMultiPartRequest.this;
req = httpservletrequest;
super();
}
};
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -