2

I would like to programmatically move a group of files from a local directory into a WebDAV directory.

I am guessing a simple batch file would not work because it is a WebDAV directory. Note: the machine is Windows Server 2003 so there is no support for mapping a WebDAV directory to a drive letter so the drive just looks like this: http://dev1:8080/data/xml and cannot be made to look like //dev1/data/xml

4

6 回答 6

0

免费WinSCP(适用于 Windows)支持 WebDAV(和 WebDAVS)。WinSCP 也支持脚本/命令行操作。

通过 WebDAV 上传文件的示例WinSCP 脚本:

open http://user@webdav.example.com/
put file.txt /path/
close

将脚本保存到文件(例如script.txt)并像这样运行它:

winscp.com /script=script.txt

您还可以将所有内容放在一行中:

winscp.com /command "open http://user@webdav.example.com/" ^
    "put file.txt /path/" "close"

如果您真的想移动(而不是复制)文件,请将-delete开关添加到put命令中:

put -delete file.txt /path/

请参阅使用 WinSCP 编写脚本的介绍

(我是WinSCP的作者)

于 2014-07-30T06:01:49.863 回答
0

Cadaver可能允许您编写一个批处理脚本来完成所有这些工作;否则你可以直接使用 CURL,但你需要更多地了解实际的 WebDAV 协议(你基本上需要在本地遍历一个目录,每个子目录的 MKCOL 和每个文件的 PUT)。

我不确定这两种工具在 Windows 上的编译效果如何,但如果它不能开箱即用,你总是可以在 Cygwin 上运行它。当您使用 Cygwin 时,您还可以创建标准的 shell 脚本(/bin/sh 或 /bin/bash),这实际上可能比 windows 的 .BAT 格式更容易。

于 2011-08-20T21:19:48.347 回答
0

你可以使用BMOVE 方法

于 2009-10-06T23:55:41.223 回答
0

您可以使用 webdav 客户端,例如这个项目中包含的客户端(它是 Apache 许可的 afaik),然后基本上用批处理文件/shell 脚本调用它

于 2011-08-20T14:05:55.563 回答
0

您可以使用python-webdav-library

from webdav import WebdavClient
url = 'https://somesite.net'
mydav = WebdavClient.CollectionStorer(url, validateResourceNames=False)
mydav.connection.addBasicAuthorization(<username>, <password>)

fid = open(<filepath of file you want to upload> ,'rb')
mydav.path = <path to where you want the file to be, ie '/a/b/c.txt'>
mydav.uploadFile(fid)
于 2013-10-29T18:41:44.620 回答
0

试试下面的代码。

$filename = 'testing.text';

exec('curl --digest --user "' . $username . ':' . $password . '" -T "' . 
$filename . '" "https://sandbox.test.com/dav/content/" ');
于 2018-04-18T08:25:15.030 回答