使用tomcat webdav,目前我能夠將文件/文檔上傳到特定的webdav位置。就此而言,這很好。從應用程序創建一個新目錄
但是現在我有一個要求,我必須在webdav位置創建一個新的目錄(基於一個條件)並將文件或文檔上傳到新創建的目錄中。
這個我必須通過Java來實現。 我試圖用file.mkdir()創建一個目錄。但它對我來說是錯誤的。
任何人都可以拋出一些光線我怎麼能克服這種情況?
親切的問候
Subbu
使用tomcat webdav,目前我能夠將文件/文檔上傳到特定的webdav位置。就此而言,這很好。從應用程序創建一個新目錄
但是現在我有一個要求,我必須在webdav位置創建一個新的目錄(基於一個條件)並將文件或文檔上傳到新創建的目錄中。
這個我必須通過Java來實現。 我試圖用file.mkdir()創建一個目錄。但它對我來說是錯誤的。
任何人都可以拋出一些光線我怎麼能克服這種情況?
親切的問候
Subbu
建立HTTP連接到您的WebDAV服務,併發出MKCOL請求(MKCOL就像GET,POST等)。類似這樣的:
MKCOL /the/directory/you/want/to/create HTTP/1.1
您應該期待201響應。如果你有其他的東西,這意味着目錄創建失敗。
非常感謝,克里斯托弗。 現在我可以在webdav中創建一個文件夾。 – Subbu 2012-08-07 06:00:50
謝謝克里斯託弗!
我想說明我的代碼使用示例應用程序創建一個webdav文件夾。
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.auth.*;
import org.apache.jackrabbit.webdav.client.methods.*;
import java.io.*;
public class CreateWebdavFolderUsingHttpClient
{
private static String url = "http://localhost:8081/webdav/subbu/MyWebdavFolder";
/**
* DOCUMENT ME!
*
*/
public static void main(String[] args)
{
String response = null;
// Create an instance of HttpClient.
HttpClient client = new HttpClient();
client.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("tomcat", "tomcat"));
DavMethod method = new MkColMethod(url);
try
{
client.executeMethod(method);
response = method.getStatusCode() + " ----- " + method.getStatusText();
client.executeMethod(new MkColMethod(url + "/10300"));
response = method.getStatusCode() + " ----- " + method.getStatusText();
}
catch (IOException ex)
{
}
finally
{
method.releaseConnection();
}
System.out.println(response);
}
}
不要忘記檢查第一個'executeMethod'調用的返回碼 - 否則第二個可能會失敗。另外,如果必須在'Method'對象上調用'releaseConnection',請確保在包含'「/ 10300」'的行上創建的對象上調用它。 – 2012-08-07 13:59:04
當然,謝謝克里斯託弗 – Subbu 2013-01-28 06:38:24
您有權限寫入目標目錄嗎? WebDAV服務器是代碼生成此目錄的地方嗎? – 2012-08-02 14:54:50
是的,我有權限。 而不是,它是一個單獨的應用程序,並希望在webdav目錄中創建文件夾/目錄。 – Subbu 2012-08-03 11:33:31
是否有任何理由不使用HTTP調用WebDAV服務器併發出'MKCOL'請求? – 2012-08-03 15:02:34