Изображение Laravel 5.7 с именем китайских символов загружено, но не загружено и отображается - PullRequest
0 голосов
/ 25 марта 2019

Я работаю над проектом 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...