Finally moved MIME stuff out of helma.objectmodel.Node
This commit is contained in:
parent
bb90831541
commit
08867be3ea
2 changed files with 125 additions and 0 deletions
80
src/helma/util/MimePart.java
Normal file
80
src/helma/util/MimePart.java
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
// MimePart.java
|
||||||
|
// Copyright (c) Hannes Wallnöfer 2001
|
||||||
|
|
||||||
|
package helma.util;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This represents a MIME part of a HTTP file upload
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class MimePart implements Serializable {
|
||||||
|
|
||||||
|
public final String name;
|
||||||
|
public int contentLength;
|
||||||
|
public String contentType;
|
||||||
|
private byte[] content;
|
||||||
|
|
||||||
|
|
||||||
|
public MimePart (String name, byte[] content, String contentType) {
|
||||||
|
this.name = name;
|
||||||
|
this.content = content == null ? new byte[0] : content;
|
||||||
|
this.contentType = contentType;
|
||||||
|
contentLength = content == null ? 0 : content.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] getContent () {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getText () {
|
||||||
|
if (contentType == null || contentType.startsWith ("text/")) {
|
||||||
|
// todo: check for encoding
|
||||||
|
return new String (content);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String writeToFile (String dir) {
|
||||||
|
return writeToFile (dir, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String writeToFile (String dir, String fname) {
|
||||||
|
try {
|
||||||
|
File base = new File (dir);
|
||||||
|
// make directories if they don't exist
|
||||||
|
if (!base.exists ())
|
||||||
|
base.mkdirs ();
|
||||||
|
|
||||||
|
String filename = name;
|
||||||
|
if (fname != null) {
|
||||||
|
if (fname.indexOf (".") < 0) {
|
||||||
|
// check if we can use extension from name
|
||||||
|
int ndot = name == null ? -1 : name.lastIndexOf (".");
|
||||||
|
if (ndot > -1)
|
||||||
|
filename = fname + name.substring (ndot);
|
||||||
|
else
|
||||||
|
filename = fname;
|
||||||
|
} else {
|
||||||
|
filename = fname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
File file = new File (base, filename);
|
||||||
|
FileOutputStream fout = new FileOutputStream (file);
|
||||||
|
fout.write (getContent ());
|
||||||
|
fout.close ();
|
||||||
|
return filename;
|
||||||
|
} catch (Exception x) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName () {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
45
src/helma/util/MimePartDataSource.java
Normal file
45
src/helma/util/MimePartDataSource.java
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
// MimePartDataSource.java
|
||||||
|
// Copyright (c) Hannes Wallnöfer 1999-2000
|
||||||
|
|
||||||
|
package helma.util;
|
||||||
|
|
||||||
|
import javax.activation.*;
|
||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Makes MimeParts usable as Datasources in the Java Activation Framework (JAF)
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class MimePartDataSource implements DataSource {
|
||||||
|
|
||||||
|
private MimePart part;
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public MimePartDataSource (MimePart part) {
|
||||||
|
this.part = part;
|
||||||
|
this.name = part.getName ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MimePartDataSource (MimePart part, String name) {
|
||||||
|
this.part = part;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public InputStream getInputStream() throws IOException {
|
||||||
|
return new ByteArrayInputStream(part.getContent ());
|
||||||
|
}
|
||||||
|
|
||||||
|
public OutputStream getOutputStream () throws IOException {
|
||||||
|
throw new IOException ("Can't write to MimePart object.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContentType() {
|
||||||
|
return part.contentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName () {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue