Я работаю над проектом Laravel 5.7. Я создал форму, которая может принимать несколько входных данных и загружать изображение в папку «public / img», и отображал полученное изображение в index.blade. Изображения могут быть успешно загружены, но файлы изображений с китайскими именами символов не отображаются. (но файл изображения с английскими или числовыми именами символов может быть успешно отображен). Как только страница дисплея загружена, в строке браузера она показывает путь к адресу перенаправленного загруженного изображения следующим образом:
http://localhost:8000/img/1553476960测试图片.jpg (а имя «1553476960 测试 图片 .jpg» - это имя файла, хранящееся в папке public / img)
но на странице отображения, когда я щелкаю правой кнопкой мыши область незагруженного изображения и копирую адрес изображения, адрес скопированного изображения отображается как:
http://localhost:8000/img/1553476960%E6%B5%8B%E8%AF%95%E5%9B%BE%E7%89%87.jpg
Я копирую этот адрес в адресную строку браузера и ввожу:
Запрашиваемый ресурс /img/1553476960%E6%B5%8B%E8%AF%95%E5%9B%BE%E7%89%87.jpg не найден на этом сервере.
Может кто-нибудь сказать мне, что не так и как я могу это исправить, чтобы он мог успешно загрузить и отобразить файл изображения с именем китайского символа?
Ниже приведены попытки, которые я попробовал:
Я уже поместил следующие коды в файл "bootstrap / app.php":
setlocale(LC_ALL,'en_US.UTF-8');
также внутри части $ app = new Illuminate \ Foundation \ Application (....) я добавил коды: realpath (DIR. '/ .. /')
$app = new Illuminate\Foundation\Application(
$_ENV['APP_BASE_PATH'] ?? dirname(__DIR__),
realpath(DIR.'/../')
);
Кроме того, я пытался использовать функции php для кодирования, декодирования или преобразования файлов, связанных с utf8, для этих файлов изображений с именами китайских символов ничего не работает .....
В контроллере:
Магазин () часть:
public function store(Request $request)
{
some other codes..... above
if ($request->hasFile('work_img')){
$file = $request->file('work_img');
$imageName = time() . $file->getClientOriginalName();
$file->move(public_path('/img'), $imageName);
}
$parameters = [
'imageName' => $imageName
];
return redirect('/compentries')->with($parameters);
}
Индекс () часть
public function index()
{
$imageName = session('imageName');
$compentries = Compentry::all();
return view('compentries.index',[compact('compentries'),
'imageName' => $imageName]);
}
В index.blade:
<!doctype html>
<html >
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>my title</title>
</head>
<body>
<h1>to display the loaded image</h1>
<div><img src="{{ asset('/img/'. $imageName) }}"></div>
</body>
</html>