You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-user@jakarta.apache.org by "PUSHPARAJAN,RAMAR (Non-HP-India,ex2)" <ra...@non.hp.com> on 2001/11/01 01:01:26 UTC
RE: Slide command line - uploads zero byte files
Hi,
Thanks for that Info,
I will try recompiling the source.
Regards
Pushparajan
-----Original Message-----
From: Yoshiyuki Kumadaki [mailto:kumadaki@webjp.co.jp]
Sent: Wednesday, October 31, 2001 10:49 AM
To: Slide Users List
Subject: Re: Slide command line - uploads zero byte files
Hi,
I have same trouble. I am using some original Webdav server.
The Webdav server does not accept PUT Header without Content-Length:
So I have modified WebdavResource, PutMethod.
I hope to be supported by Slide.
PUT(file) : easy to implement
Content-Length: file.length()
PUT(InputStream) : I add setContentLength(length)
to be called before calling PUT(InputStream)
1 WebdavResource
1) coment out import statement of httpclient.method
Because I would like to modify org.apache.webdav.lib.method.PutMethod
rather than org.apache.commons.httpclient.methods.PutMethod
/*
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.HeadMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.PutMethod;
*/
2) Add setContentLength(long length) method for Put(InputStream)
private long contentLength = -1 ;
/**
* Set Content-Length for Not File.
* @param length of InputStream PUT data
*
*/
public void setContentLength(long contentLength) {
this.contentLength = contentLength;
}
3) Chnage calling sequence method.sendData(
except method.sendData(file);
/* modified PUT
From method.sendData( is,byte[] data,string data,url
--> method.setContentLength(contentLength);method.sendData(
*/
/* ex. original
method.sendData(is);
to */
method.setContentLength(contentLength);
method.sendData(is);
2. org.apache.webdav.lib.PutMethod
private long contentLength = -1;
/**
* Set Content-Length for Not File.
* @param length of InputStream PUT data
*
*/
public void setContentLength(long contentLength) {
this.contentLength = contentLength;
}
2.1 sendData(file)
public void sendData(File file)
throws IOException {
setHeader("Content-Length", String.valueOf(file.length()) )
;
super.sendData(file);
}
2.2 sendData(!file)
sendData(String data) sendData(InputStream is)
sendData(byte[] data) sendData(URL url)
public void sendData(InputStream is)
throws IOException {
if (contentLength >= 0){
setHeader("Content-Length", String.valueOf(
contentLength ) );
contentLength = -2;
}
super.sendData(is);
}
At 13:51 01/10/30, Remy Maucherat wrote:
>
>> > Hi,
>> >
>> > I've downloaded the Slide source and Binanries. I compiled the Slide
>> > Client (Slide.java). When I do an PUT command it always creates a new
>file
>> > in the webdav directory with zero byte length. All other commands like
>> > dir, get etc work properly. Pls help me fix this.
>
>What is the server you're using ? Because of a variety of problems with the
>HTTP client, chunking is used when uploading with a PUT if the server is
>HTTP/1.1, which is something some servers don't like.
>Tomcat 4.0 should work ok. Tomcat 3.x should also be ok (it will be
>identified as a HTTP/1.0 server) in standalone.
>
>Remy
--
Yoshiyuki Kumadaki/熊懐 善之
Web Japan Co.,Ltd /(株)ウエブジャパン
<http://www.webjp.co.jp/>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>