Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net apple finder webdav客户端放入无内容的文件_.net_Http_Webdav - Fatal编程技术网

.net apple finder webdav客户端放入无内容的文件

.net apple finder webdav客户端放入无内容的文件,.net,http,webdav,.net,Http,Webdav,我正在创建一个webdav服务器,以便能够轻松地向我们的后台软件添加/(重新)移动文件。 因此,我还实现了PUT命令,如果我使用Windows资源管理器创建文件,它就可以正常工作。 然而,当我使用Mac OS X Finder(借助Transmit,但这没有什么区别)将文件放入服务器时,我没有得到任何内容。 我将Fiddler配置为反向代理,这显示了以下请求: PUT http://localhost:15001/WebDav/test.txt HTTP/1.1 User-Agent: Tran

我正在创建一个webdav服务器,以便能够轻松地向我们的后台软件添加/(重新)移动文件。 因此,我还实现了PUT命令,如果我使用Windows资源管理器创建文件,它就可以正常工作。 然而,当我使用Mac OS X Finder(借助Transmit,但这没有什么区别)将文件放入服务器时,我没有得到任何内容。 我将Fiddler配置为反向代理,这显示了以下请求:

PUT http://localhost:15001/WebDav/test.txt HTTP/1.1
User-Agent: TransmitFSHelper/1.0.2 neon/0.29.3
Connection: TE
TE: trailers
Host: localhost:49416
Content-Length: 0
它不发送任何内容。
我读过一些关于“拖车”、分块编码等的内容,但不知道如何响应客户机让他发送文件内容。

创建新文件(fopen('bla','w'))时,磁盘上首先会出现一个空文件。这就是为什么您看到的初始请求是一个0字节的文件。之后,程序可能会附加到文件中,但这将是一个单独的请求

因此,请将0字节的文件视为正确的文件,并将其发回。在此之后,您应该会看到第二个请求

然而,有时客户端(如Finder)会在HTTP请求中使用分块编码,这是事实。我用PHP实现了一个webdav服务器,当使用FastCGI和Finder时,它根本不工作,服务器必须在apache上运行mod_PHP才能工作

因此,如果分块请求失败或成功取决于您的堆栈,我不知道使用.NET。但至少您应该能够看到两个请求进入服务器,而不是一个。分块编码问题与此无关