Я использую Laravel 5, и я делаю AJAX request
с помощью которого пользователь может создать directory
, Но если пользователь использует Cyrillic alphabet
вновь созданный каталог кажется странным: РЎРЅРёРјРєРё
, Это Аякс:
$.ajax({
async: true,
method: 'POST',
dataType: 'json',
url: '../public/createfolder',
data: {foldername: $('#folder-name').val(), "_token": csrf},
complete: function(response) {
console.log(response);
}
});
И вот как я ловлю запрос:
public function createFolder(){
$foldername = $_POST['foldername'];
$ds = DIRECTORY_SEPARATOR;
$userid = Auth::id();
Storage::disk('local')-> makeDirectory('uploads'.$ds.$userid.$ds.$foldername);
}
Как этого можно избежать?
Я полагаю, ваши имена каталогов хранятся в базе данных. В этом случае вы можете просто создать фактические каталоги с именем в качестве их идентификатора в базе данных.
Также вам не нужно создавать каталог, даже если пользователь думает, что он его создает. Если пользователь не разрешит доступ к нему через FTP, создавать его не нужно. Вы можете иметь один каталог для каждого пользователя и назначать файлы в базе данных виртуальному каталогу, который отображается только для пользователя, даже если все файлы находятся в одном месте.
Других решений пока нет …