Я использую Nancy для размещения внутреннего веб-сайта, и мне нужно загружать файлы с международными символами в именах (é, á, ü и т. Д.). Это обработчик сообщения:
Post["/savefile"] = _ => {
var file = Request.Files.Single();
byte[] bytes = Encoding.Default.GetBytes(file.Name);
var fullname = string.Format("{0}{1}_{2}", @"C:\Files\", "Test", Encoding.UTF8.GetString(bytes));
try {
using (var filestream = File.OpenWrite(fullname)) {
file.Value.CopyTo(filestream);
}
return "OK";
} catch (Exception ex) {
return ex.Message;
}
И запрос в Angular:
SaveFile(){
const fd = new FormData();
fd.append('File',this.file,encodeURIComponent(this.selectedFile));
this.httpClient.post('http://localhost:61210/savefile',fd,{responseType:'text'}).subscribe(result=>{
alert(result);
});
}
Он работает с обычными символами в имени файла, но я получаю «Доступ к XMLHttpRequest в« http://localhost:61210/savefile' из источника »http://localhost:4200'была заблокирована политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». "когда я пробую венгерские символы.Я почти уверен, что это как-то связано с кодировкой символов, но чего мне не хватает?