Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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
GCDWebServer:如何更改服务器上WebDAV操作的文件权限?(iOS)_Ios_Swift_Http_Webdav_Gcdwebserver - Fatal编程技术网

GCDWebServer:如何更改服务器上WebDAV操作的文件权限?(iOS)

GCDWebServer:如何更改服务器上WebDAV操作的文件权限?(iOS),ios,swift,http,webdav,gcdwebserver,Ios,Swift,Http,Webdav,Gcdwebserver,我目前正在尝试使用GCDWebServer托管本地网页,该网页在应用程序启动时由WKWebView请求。我希望能够在应用程序运行时通过UIDocumentPickerViewController获取文件,从而将外部文件上载到服务器。在不同的端口上使用单独的GCDWebDAVServer似乎是一个好主意 但是,如果我尝试将文件上载到WebDAV服务器,我会从响应中获得以下数据: <!DOCTYPE html><html lang="en"><hea

我目前正在尝试使用GCDWebServer托管本地网页,该网页在应用程序启动时由WKWebView请求。我希望能够在应用程序运行时通过UIDocumentPickerViewController获取文件,从而将外部文件上载到服务器。在不同的端口上使用单独的GCDWebDAVServer似乎是一个好主意

但是,如果我尝试将文件上载到WebDAV服务器,我会从响应中获得以下数据:

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>HTTP Error 500</title></head><body><h1>HTTP Error 500: Failed moving uploaded file to &quot;/arbitrary.txt&quot;</h1><h3>[NSCocoaErrorDomain] “35B890AC-7CD2-4A10-A67F-BAED3D6C34AB-3278-000005593C778876” couldn’t be moved because you don’t have permission to access “www”. (513)</h3></body></html>
以及用于将文件上载到WebDAV服务器的PUT请求的代码:

让importedFileUrl=url.first!
做{
let data=try data(contentsOf:importedFileUrl)
var request=URLRequest(url:url(字符串):http://localhost:\(WEBDAV_PORT)/arbitral.txt“!)
request.httpMethod=“PUT”
让task=URLSession(配置:.ephemeral).uploadTask(with:request,from:data){data,response,中的错误
打印(“数据:\(字符串(描述:数据))”)
打印(“响应:\(字符串(描述:响应))”)
打印(“错误:\(字符串(描述:错误)))
打印(字符串(解码:data!,as:UTF8.self))
}
task.resume()
}捕捉错误{
createErrorAlert(消息:error.localizedDescription)
}
这与iOS 14本地网络隐私功能无关。我试图修改Info.plist以包含新的密钥,但没有任何更改。似乎
www
文件夹没有写入权限


是否有我缺少的功能可以让您更改GCDWebServer中的文件权限,或者是否有解决方法?目前,我能想到的唯一解决办法是在web服务器旁创建一个本地数据库。

不允许写入权限的原因是因为我直接从应用程序包提供文件,无法写入

我的解决方案是将该目录的内容复制到Documents目录中,然后使用WebDAV写入该目录

Failed moving uploaded file to &quot;/arbitrary.txt&quot;</h1><h3>[NSCocoaErrorDomain] “35B890AC-7CD2-4A10-A67F-BAED3D6C34AB-3278-000005593C778876” couldn’t be moved because you don’t have permission to access “www”.