2026-10-22 11:47:39 +02:00

30 lines
1.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using WebDAVSharp.Server;
using WebDAVSharp.Server.Adapters;
using WebDAVSharp.Server.Stores.DiskStore;
namespace WebDAVSharp.WebServer.Controllers {
public class WebDAVController : ApiController {
[Route("webDav/{*FileName}"),
AcceptVerbs("OPTIONS", "GET", "HEAD", "PROPFIND", "PROPPATCH", "MKCOL", "PUT", "DELETE", "COPY", "MOVE", "LOCK", "UNLOCK", "TRACE", "POST")]
public void WebDav(String FileName) {
var rootPath = @"t:\";
var store = new WebDavDiskStore(rootPath);
var webDavServer = new WebDavServer(store);
webDavServer.ServiceUrl = "http://" + Request.RequestUri.Authority + "/webDAV/"; // trailing slash is important //TODO: check protocol HTTP vs. HTTPS
webDavServer.ProcessRequest(HttpContext.Current, FileName);
//HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
}
}