commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <vishal.mes...@techprocess.co.in>
Subject RE: [FILEUPLOAD] feasibility of using fileupload apache api without boundary
Date Tue, 24 Nov 2009 16:08:44 GMT
Thanx martin,

But is there any other api which I can use to address this issue as per you
info..

-----Original Message-----
From: mfncooper@gmail.com [mailto:mfncooper@gmail.com] On Behalf Of Martin
Cooper
Sent: Tuesday, November 24, 2009 9:35 PM
To: Commons Users List
Subject: Re: [FILEUPLOAD] feasibility of using fileupload apache api without
boundary

The boundary is defined by RFC 1867, which is the spec that Commons
FileUpload implements. The RFC is linked to from the FileUpload home
page, which you referenced. I'd recommend reading that spec.

If you don't want the boundary for some reason (and I can't think of
any good reason for removing it), then you don't want Commons
FileUpload. You'll likely have to create your own protocol in place of
RFC 1867.

--
Martin Cooper


On Tue, Nov 24, 2009 at 7:57 AM,  <vishal.mestri@techprocess.co.in> wrote:
> hi all,
>
> i am using file upload api for io operation to download files on server
> using multipart/form-data.
>
> link given below:-
>
> http://commons.apache.org/fileupload
>
>
>
> If we are using normal html file for upload no issue, browser takes care
of
> "boundary"...
>
>
>
> but if we write core java app to connect to filedownload app, we need to
set
> "boundary" manually...
>
> I have set boundary manually,it works.But it does not work without
boundary.
>
>
>
> is it possible to download files without boundary?
>
> is there any other api which can do it?
>
>
>
> if I remove boundary from code it gives me error:
>
> org.apache.commons.fileupload.FileUploadException: the request was
rejected
> because no multipart boundary was found
>
>
>
> my html code being used to connect to filedownload app:-
>
> -----------------------------
>
> <html>
>
> <head>
>
> <script language="JavaScript">
>
> function show(){}
>
>  </script>
>
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
>
> <title>Insert title here</title>
>
> </head>
>
> <body>
>
> <form AUTOCOMPLETE="off"  name="addFiles" method="post"
> action="https://tpslvl0109:8443/FileDownload/pushFile"
> enctype="multipart/form-data">
>
> username:<input type=text name=username id=username
value="myusername"><br>
>
> password:<input type=password name=password id=password
> value="mypassword"><br>
>
> Input file1:<input name="inputfile1" type="file" id="inputfile1"
> size="55"><br>
>
> <input type=submit name=submit value=submit onClick="show()" >
>
> </form></body></html>
>
> -----------------------------
>
> my core java client app used to connect to same filedownload app
>
> ---------------------------------
>
> import java.io.DataOutputStream;
>
> import java.io.File;
>
> import java.io.FileInputStream;
>
> import java.io.InputStream;
>
> import java.io.InputStreamReader;
>
> import java.io.Reader;
>
> import java.net.HttpURLConnection;
>
> import java.net.URL;
>
> import javax.net.ssl.HostnameVerifier;
>
> import javax.net.ssl.HttpsURLConnection;
>
> import javax.net.ssl.SSLContext;
>
> import javax.net.ssl.SSLSession;
>
> import javax.net.ssl.TrustManager;
>
> import javax.net.ssl.X509TrustManager;
>
>
>
> public class connect implements HostnameVerifier{
>
>      public connect(){}
>
>      public void try_connect(){
>
>      try {
>
>              String boundary =  "*****";
>
>            System.setProperty( "java.protocol.handler.pkgs" ,
> "javax.net.ssl" );
>
>            java.security.Security.addProvider( new
> com.sun.net.ssl.internal.ssl.Provider() );
>
>            TrustManager[] trustAllCerts = new TrustManager[] {
>
>                        new X509TrustManager(){
>
>                              public java.security.cert.X509Certificate[]
> getAcceptedIssuers(){
>
>                                    return null;
>
>                              }
>
>                        public void checkClientTrusted(
> java.security.cert.X509Certificate[] certs, String authType ) { }
>
>                              public void checkServerTrusted(
> java.security.cert.X509Certificate[] certs, String authType ) { }
>
>                        }
>
>                  };
>
>            SSLContext sc = SSLContext.getInstance( "SSL" );
>
>            sc.init( null, trustAllCerts, new java.security.SecureRandom()
> );
>
>            HttpsURLConnection.setDefaultSSLSocketFactory(
> sc.getSocketFactory() );
>
>            URL url = new URL("https", "tpslvl0109", 8443,
> "/FileDownload/pushFile");
>
>            System.out.println(url.getQuery());
>
>             HttpsURLConnection m_oHttpURLConnection =
 (HttpsURLConnection)
> url.openConnection();
>
>            m_oHttpURLConnection.setDoInput( true );
>
>            m_oHttpURLConnection.setDoOutput( true );
>
>            m_oHttpURLConnection.setUseCaches( false );
>
>            m_oHttpURLConnection.setRequestProperty("Connection",
> "Keep-Alive");
>
>            m_oHttpURLConnection.setRequestProperty( "Content-Type",
> "multipart/form-data;boundary="+boundary );
>
>            m_oHttpURLConnection.setAllowUserInteraction( true );
>
>            m_oHttpURLConnection.setRequestMethod("POST");
>
>            m_oHttpURLConnection.setInstanceFollowRedirects( true );
>
>           ( ( HttpsURLConnection )( m_oHttpURLConnection )
> ).setHostnameVerifier( this );
>
>
>
>          m_oHttpURLConnection.connect();
>
>          DataOutputStream dos = null;
>
>              String exsistingFileName =
> "D:\\projects\\104-FileDownload\\TestFilefrom.txt";
>
>          String lineEnd = "\r\n";
>
>          String twoHyphens = "--";
>
>              dos = new DataOutputStream(
> m_oHttpURLConnection.getOutputStream() );
>
>          dos.writeBytes(twoHyphens + boundary + lineEnd);
>
>                           dos.writeBytes("Content-Disposition: form-data;
> name=username ;  " + lineEnd );
>
>                           dos.writeBytes(lineEnd);
>
>                           dos.writeBytes("myusername");
>
>                           dos.writeBytes(lineEnd);
>
>                           dos.writeBytes(twoHyphens + boundary + lineEnd);
>
>                           dos.writeBytes("Content-Disposition: form-data;
> name=password ; " + lineEnd );
>
>                           dos.writeBytes(lineEnd);
>
>                           dos.writeBytes("mypassword");
>
>                           dos.writeBytes(lineEnd);
>
>
>
>                           dos.writeBytes(twoHyphens + boundary + lineEnd);
>
>                           dos.writeBytes("Content-Disposition: form-data;
> name=\"upload\";"
>
>                              + " filename=\"" + exsistingFileName +"\""
+
> lineEnd );
>
>                           dos.writeBytes(lineEnd);
>
>                           FileInputStream fileInputStream = new
> FileInputStream( new
>
>                                                   File(exsistingFileName)
> );
>
>                           int bytesRead, bytesAvailable, bufferSize;
>
>                                      byte[] buffer;int maxBufferSize
=
> 1*1024*1024;
>
>                           bytesAvailable = fileInputStream.available();
>
>                           bufferSize = Math.min(bytesAvailable,
> maxBufferSize);
>
>                           buffer = new byte[bufferSize];
>
>                           bytesRead = fileInputStream.read(buffer, 0,
> bufferSize);
>
>                           while (bytesRead > 0)
>
>                           {
>
>                            dos.write(buffer, 0, bufferSize);
>
>                            bytesAvailable = fileInputStream.available();
>
>                            bufferSize = Math.min(bytesAvailable,
> maxBufferSize);
>
>                            bytesRead = fileInputStream.read(buffer, 0,
> bufferSize);
>
>                           }
>
>                           dos.writeBytes(lineEnd);
>
>                           dos.writeBytes(twoHyphens + boundary +
twoHyphens
> + lineEnd);
>
>                           fileInputStream.close();
>
>                           dos.flush();
>
>                           dos.close();
>
>          System.out.println("It's Connected");
>
>         InputStream is = m_oHttpURLConnection.getInputStream (  ) ;
>
>      if  ( is == null )   {
>
>          throw new Exception ( "Got a null content object!" ) ;
>
>       }
>
>      StringBuffer putBackTogether = new StringBuffer (  ) ;
>
>      Reader r = new InputStreamReader ( is, "UTF-8" ) ;
>
>      char [  ]  cb = new char [ 2048 ] ;
>
>      int amtRead = r.read ( cb ) ;
>
>      while  ( amtRead  >  0 )   {
>
>          putBackTogether.append ( cb, 0, amtRead ) ;
>
>          amtRead = r.read ( cb ) ;
>
>       }
>
>      String pageSource = putBackTogether.toString (  ) ;
>
>      System.out.println(pageSource);
>
>            } catch (Exception e){
>
>                  e.printStackTrace();
>
>            }
>
>      }
>
>
>
>      public boolean verify(String hostname, SSLSession session) {
>
>            return true;
>
>      }
>
>      public static void main(String[] args) {
>
>                        try{connect c=new connect();
>
>                        c.try_connect();}catch(Exception e){
>
>                                    e.printStackTrace(System.out);
>
> }}                      }
>
> ---------------------------------
>
>
>
> Disclaimer: ""Unless indicated otherwise, the information contained in
this message is privileged and confidential, and is
> intended only for the use of the addressee(s) named above and others who
have been specifically authorized to receive it.
> If you are not the intended recipient, you are hereby notified that any
dissemination, distribution or copying of this
> message and/or attachments is strictly prohibited. TechProcess Solutions
Ltd. accepts no liability for any damage caused by
> any virus transmitted by this email. Furthermore, the company does not
warrant a proper and complete transmission of this
> information, nor does it accept liability for any delays. If you have
received this message in error, please contact the
> sender and delete the message. Thank you.""
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org



Disclaimer: ""Unless indicated otherwise, the information contained in this message is privileged
and confidential, and is
intended only for the use of the addressee(s) named above and others who have been specifically
authorized to receive it. 
If you are not the intended recipient, you are hereby notified that any dissemination, distribution
or copying of this 
message and/or attachments is strictly prohibited. TechProcess Solutions Ltd. accepts no liability
for any damage caused by
any virus transmitted by this email. Furthermore, the company does not warrant a proper and
complete transmission of this
information, nor does it accept liability for any delays. If you have received this message
in error, please contact the
sender and delete the message. Thank you.""




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message