You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by ms...@locus.apache.org on 2000/11/21 19:39:06 UTC
cvs commit: jakarta-struts/src/share/org/apache/struts/upload MultipartIterator.java DiskMultipartRequestHandler.java
mschachter 00/11/21 10:39:04
Modified: src/share/org/apache/struts/upload MultipartIterator.java
DiskMultipartRequestHandler.java
Log:
- Now gracefully handles null input files from multipart requests, just make sure that you check
for zero length file names and a null content type to find out if the client uploaded a file or not
Revision Changes Path
1.3 +4 -2 jakarta-struts/src/share/org/apache/struts/upload/MultipartIterator.java
Index: MultipartIterator.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/upload/MultipartIterator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MultipartIterator.java 2000/11/21 17:38:31 1.2
+++ MultipartIterator.java 2000/11/21 18:39:02 1.3
@@ -123,7 +123,7 @@
if ((disposition != null) && (disposition.startsWith("Content-Disposition"))) {
String name = parseDispositionName(disposition);
String filename = parseDispositionFilename(disposition);
-
+
String contentType = null;
byte[] data = null;
@@ -193,7 +193,7 @@
catch (UnsupportedEncodingException uee) {
data = textData.getBytes();
}
-
+
MultipartElement element = new MultipartElement(name,
filename,
contentType,
@@ -358,11 +358,13 @@
public static String parseForAttribute(String attribute, String parseString) {
int nameIndex = parseString.indexOf(attribute + "=\"");
if (nameIndex != -1) {
+
int endQuoteIndex = parseString.indexOf("\"", nameIndex+attribute.length()+3);
if (endQuoteIndex != -1) {
return parseString.substring(nameIndex+attribute.length()+2, endQuoteIndex);
}
+ return "";
}
return null;
}
1.5 +1 -1 jakarta-struts/src/share/org/apache/struts/upload/DiskMultipartRequestHandler.java
Index: DiskMultipartRequestHandler.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/upload/DiskMultipartRequestHandler.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DiskMultipartRequestHandler.java 2000/11/21 17:38:31 1.4
+++ DiskMultipartRequestHandler.java 2000/11/21 18:39:02 1.5
@@ -59,7 +59,7 @@
allElements = new Hashtable();
while ((element = iterator.getNextElement()) != null) {
- if (element.getContentType() == null) {
+ if ((element.getFileName() == null) && (element.getContentType() == null)) {
String textData;
try {
textData = new String(element.getData(), "ISO-8859-1");