Author: markt
Date: Thu Mar 14 20:34:32 2013
New Revision: 1456657
URL: http://svn.apache.org/r1456657
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54658
Servlet 3.1: Implement getSubmittedFileName()
Patch provided by Nick Williams
Modified:
tomcat/trunk/java/javax/servlet/http/Part.java
tomcat/trunk/java/org/apache/catalina/connector/Request.java
tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java
tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
Modified: tomcat/trunk/java/javax/servlet/http/Part.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/Part.java?rev=1456657&r1=1456656&r2=1456657&view=diff
==============================================================================
--- tomcat/trunk/java/javax/servlet/http/Part.java (original)
+++ tomcat/trunk/java/javax/servlet/http/Part.java Thu Mar 14 20:34:32 2013
@@ -48,6 +48,15 @@ public interface Part {
public String getName();
/**
+ * If this part represents an uploaded file, gets the file name submitted
+ * in the upload. Returns {@code null} if no file name is available or if
+ * this part is not a file upload.
+ *
+ * @return the submitted file name or {@code null}.
+ */
+ public String getSubmittedFileName();
+
+ /**
* Obtain the size of this part.
*/
public long getSize();
Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1456657&r1=1456656&r2=1456657&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Thu Mar 14
20:34:32 2013
@@ -2606,7 +2606,7 @@ public class Request
for (FileItem item : items) {
ApplicationPart part = new ApplicationPart(item, mce);
parts.add(part);
- if (part.getFilename() == null) {
+ if (part.getSubmittedFileName() == null) {
String name = part.getName();
String value = null;
try {
Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java?rev=1456657&r1=1456656&r2=1456657&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java Thu Mar 14
20:34:32 2013
@@ -128,10 +128,21 @@ public class ApplicationPart implements
return fileItem.getString(encoding);
}
+ /**
+ * Calls {@link #getSubmittedFileName()}.
+ *
+ * @deprecated Use {@link #getSubmittedFileName()} from Servlet 3.1
instead.
+ */
+ @Deprecated
+ public String getFilename() {
+ return getSubmittedFileName();
+ }
+
/*
* Adapted from FileUploadBase.getFileName()
*/
- public String getFilename() {
+ @Override
+ public String getSubmittedFileName() {
String fileName = null;
String cd = getHeader("Content-Disposition");
if (cd != null) {
Modified: tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java?rev=1456657&r1=1456656&r2=1456657&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java Thu
Mar 14 20:34:32 2013
@@ -34,7 +34,6 @@ import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
-import java.util.Map;
import java.util.Set;
import javax.servlet.ServletException;
@@ -55,7 +54,6 @@ import org.apache.catalina.util.ContextN
import org.apache.catalina.util.RequestUtil;
import org.apache.catalina.util.ServerInfo;
import org.apache.catalina.util.URLEncoder;
-import org.apache.tomcat.util.http.fileupload.ParameterParser;
import org.apache.tomcat.util.res.StringManager;
/**
@@ -262,8 +260,7 @@ public final class HTMLManagerServlet ex
"htmlManagerServlet.deployUploadNoFile");
break;
}
- filename =
- extractFilename(warPart.getHeader("Content-Disposition"));
+ filename = warPart.getSubmittedFileName();
if (!filename.toLowerCase(Locale.ENGLISH).endsWith(".war")) {
message = smClient.getString(
"htmlManagerServlet.deployUploadNotWar", filename);
@@ -324,35 +321,6 @@ public final class HTMLManagerServlet ex
return message;
}
- /*
- * Adapted from FileUploadBase.getFileName()
- */
- private String extractFilename(String cd) {
- String fileName = null;
- if (cd != null) {
- String cdl = cd.toLowerCase(Locale.ENGLISH);
- if (cdl.startsWith("form-data") || cdl.startsWith("attachment")) {
- ParameterParser parser = new ParameterParser();
- parser.setLowerCaseNames(true);
- // Parameter parser can handle null input
- Map<String,String> params =
- parser.parse(cd, ';');
- if (params.containsKey("filename")) {
- fileName = params.get("filename");
- if (fileName != null) {
- fileName = fileName.trim();
- } else {
- // Even if there is no value, the parameter is present,
- // so we return an empty file name rather than no file
- // name.
- fileName = "";
- }
- }
- }
- }
- return fileName;
- }
-
/**
* Deploy an application for the specified path from the specified
* web application archive.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]