- From: Anselm Baird_Smith <abaird@www43.inria.fr>
- Date: Wed, 20 Nov 1996 14:08:18 +0100 (MET)
- To: "Kai Schmidt" <serkom@schwaben.de>
- Cc: www-jigsaw@w3.org
Kai Schmidt writes:
> On Tue, 19 Nov 1996 17:14:40 +0100 (MET), Anselm Baird_Smith wrote:
> >You can use PUT rather then obsolete file upload (BTW Its much better)
>
> Could you show me HOW? Some Javacode to actually use the HTTP PUT
> on the client side without a browser?
Find an 'upload.java' class enclosed below.
> >
> > > 2.) What is the best (easiest) way of storing persistant information? I have a postable resource
> > > (a poll to collect Yes and No) and would like to display the given numbers of pros and cons.
> >
> >I would use a Resource, but I am probably biased. You can alwaays use
> >files, or properties
>
> My resource-form has a YES and a NO Button (responding to some questions), and I would like to count the users total
> opinion and display it back on the dynamic form.
> I understand to work with FILES but since Jigsaw has some internal mechanism to store information I would like to use them.
> Are there some examples/doku? Sorry if I ask , but Jigsaw is so much more complicated. :=(
>
> With my current www-server (Goserve) I just stored this in a file. HOW can I use 'properties' or 'resources' as persistant and
> global variable-store.
Well, you can still store that in a file, no problems...
Anselm.
// upload.java
import java.io.*;
import java.net.*;
import w3c.www.mime.*;
import w3c.www.http.*;
import w3c.www.protocol.http.*;
/**
* Upload a single file, using HTTP.
*/
public class upload {
protected static boolean debug = false;
/**
* Copy the given source of given type, to given location.
* @param type The MIME type of the source.
* @param src The source to copy.
* @param dst The destination URL.
*/
protected static boolean copy(MimeType type, File src, URL dst)
throws IOException, HttpException
{
HttpManager manager = HttpManager.getManager();
// Get a handle to the source stream:
InputStream in = new BufferedInputStream(new FileInputStream(src));
// Prepare an HTTP request:
Request request = manager.createRequest();
request.setMethod("PUT");
request.setURL(dst);
request.setContentLength((int) src.length());
request.setContentType(type);
request.setOutputStream(in);
if ( debug )
request.dump(System.out);
// Run the request:
Reply reply = manager.runRequest(request);
if ( debug )
reply.dump(System.out);
in.close();
// Check the reply status:
return (reply.getStatus() / 200 == 2);
}
public static void usage() {
System.out.println("upload [-t <mime-type>] [-d] <src> <dst>");
System.out.println("src: URL of source.");
System.out.println("dst: URL of destination.");
System.exit(1);
}
public static void main(String args[]) {
File src = null;
URL dst = null;
MimeType type = MimeType.TEXT_HTML;
// Check args:
for (int i = 0 ; i < args.length ; i++) {
if ( args[i].equals("-t") && (i+1 < args.length)) {
try {
type = new MimeType(args[++i]);
} catch (Exception ex) {
System.out.println("Invalid mime type: "+args[i]);
}
} else if ( args[i].equals("-d") ) {
debug = true;
} else if ( i + 2 == args.length ) {
// Get the source:
src = new File(args[i]);
if ( ! src.exists() ) {
System.out.println("Couldn't find "+args[i]);
System.exit(1);
}
// Get the destination:
try {
dst = new URL(args[++i]);
} catch (Exception ex) {
System.out.println(args[i]+": invalid URL.");
}
} else {
usage();
}
}
if ((src == null) || (dst == null))
usage();
// Perform the task:
try {
if ( copy(type, src, dst) )
System.out.println("Copy failed.");
else
System.out.println("Copy done.");
} catch (Exception ex) {
ex.printStackTrace();
}
System.exit(0);
}
}
Received on Wednesday, 20 November 1996 08:08:28 UTC