Hi!
For me this works great:
----client-----
HttpURLConnection uc = (HttpURLConnection)new URL("...").openConnection();
File mp3File = ...;
uc.setRequestProperty("fName", mp3File.getName());
uc.setRequestMethod("POST");
BufferedOutputStream bout = new
BufferedOutputStream(uc.getOutputStream(),256);
BufferedInputStream bin = new BufferedInputStream(new
FileInputStream(mp3File),256);
byte[] b=new byte[256];
int n=-1;
while ((n = bin.read(b,0,b.length))!=-1)
    bout.write(b,0,n);
bin.close();
bout.close();
------client---------

-----server-------
String fName = request.getHeader("fName");
BufferedInputStream bin = new BufferedInputStream(request.getInputStream());
File mp3File = new File(getServletContext().getRealPath("/mp3/"),fName);
if (!mp3File.exists()) mp3File.createNewFile();
FileOutputStream fout = new FileOutputStream(
byte[] b=new byte[256];
int n=-1;
while ((n=bin.read(b,0,b.length))!=-1)
    fout.write(b,0,n);
bin.close();
fout.close();
------server-----------

Hope this helps!

-mw


----- Original Message -----
From: "Peter Maas" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, November 02, 2002 1:00 PM
Subject: Re: sending a file from Java application to servlet


> Well... ok... works fine... but still the binary transfer doesn't seem to
> work.. I'm currently using a CORBA workarround...
>
> P
>
> ----- Original Message -----
> From: "Michael Weller" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Saturday, November 02, 2002 12:37
> Subject: Re: sending a file from Java application to servlet
>
>
> > Hi!
> > Why don't you simply use
URLConnection.setRequestProperty("fName","value")
> > to pass the mp3's filename to the servlet? On the server-side you'd
simply
> > do a request.getHeader("fName") to get the name.
> >
> > -mw
> >
> > ----- Original Message -----
> > From: "Peter Maas" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Friday, November 01, 2002 6:33 PM
> > Subject: Re: sending a file from Java application to servlet
> >
> >
> > > I tried doing that and it almost works... but... (probably a realy
> stupid
> > > mistake)....
> > > I would like to transfer an mp3 file to the servlet this is how the
code
> > in
> > > the app looks:
> > >
> > >     DataOutputStream printout = new
> > > DataOutputStream(urlC.getOutputStream());
> > >
> > >    File theFile = new File(file);
> > >    String fname = "filename="+theFile.getName();
> > >      printout.writeBytes(fname);
> > >      printout.writeBytes("\n");
> > >
> > >       FileInputStream fos;
> > >        DataInputStream ds;
> > >       try {
> > >          fos = new FileInputStream(file);
> > >          ds = new DataInputStream( fos );
> > >          byte[] data = new byte[(int)theFile.length()];
> > >     ds.readFully(data);
> > >     printout.write(data);
> > >     ds.close();
> > >        fos.close();
> > >       }
> > >       catch (IOException ioe) {
> > >                System.out.println( "IO error: " + ioe );
> > >    }
> > >
> > >      printout.flush();
> > >      printout.close();
> > >
> > > The servlet side's code looks like this:
> > >
> > >     /**
> > >     * Below we extract the filename from the
> > >     * Http headers read so far.
> > >     */
> > >
> > >     fFilename =
> > >
> >
>
pLine.substring(9+pLine.lastIndexOf("filename="),pLine.lastIndexOf("mp3")+3)
> > > ;
> > >  System.out.println(fFilename);
> > >
> > >  /*
> > >   * Write the remaining to disk
> > >   */
> > >
> > >     FileOutputStream fos;
> > >     DataOutputStream ds;
> > >     try {
> > >        fos = new FileOutputStream(UploadLocation+fFilename);
> > >        ds = new DataOutputStream( fos );
> > >    String line = br.readLine();
> > >    if(line != null){
> > >    ds.writeBytes(line);
> > >    while((line = br.readLine()) != null){
> > >     // if there is a newline in the header it probably came from the
> > binary
> > > data
> > >     ds.writeBytes("\n");
> > >       ds.writeBytes(line);
> > >   }
> > >    }
> > >       ds.close();
> > >       fos.close();
> > >     }
> > >     catch (IOException ioe) {
> > >       System.err.println( "IO error: " + ioe );
> > >  }
> > >

___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

Reply via email to