Сначала это было preg_replace, не читая арабские символы для имени файла, поэтому при загрузке он показывает только .pdf, поэтому я добавил арабские символы в preg_replace, чтобы получить имя файла как есть. Теперь имя файла отображается как «Ø§ÙÙÙاعداÙØ¹Ø ± Ø¨ÙŠØ © .pdf»preg_replace и file_get_contents, не читающие арабские имена файлов
Я не уверен, что если что-то случилось с моим кодом
public function download($id){
$toReturn = study_material::where('id',$id)->first();
if(file_exists('uploads/material/'.$toReturn->material_file)){
$fileName = preg_replace('/[^أ-يa-zA-Z0-9-_\.]/','',$toReturn->material_title). "." .pathinfo($toReturn->material_file, PATHINFO_EXTENSION);
header("Content-Type: application/force-download");
header('Content-Type: text/html; charset=utf-8');
header("Content-Disposition: attachment; filename=" . $fileName);
echo file_get_contents('uploads/material/'.$toReturn->material_file);
}
exit;
}
так вы подразумеваете, что я заменю 'preg_replace' на' mb_ereg_replace', это решит проблему? Или требуется дальнейшие шаги? –
Я считаю, что это должно решить проблему. – Sarmad