下載圖片調(diào)用downlaod方法在safari中中文名是亂碼,代碼和錯(cuò)誤截圖如下,
通過(guò)設(shè)置請(qǐng)求頭Content-type:text/html;charset=utf-8能解決不
return response()->download(base_path() . '/resource/' . $id . '.jpg', 'avatar.jpg');
不要直接用downlaod方法,構(gòu)造一下header信息,貼一段我目前的下載
$sourceName = '某某某.mp4';
$encoded_filename = urlencode($sourceName);
$encoded_filename = str_replace("+", "%20", $encoded_filename);
$encodefilename = rawurlencode($sourceName);
$user_agent = strtolower($request->header('user-agent'));
$filepath = '/data/xxx.mp4';
if (file_exists($filepath)) {
$respone = response();
$respone->withFile($filepath);
if (preg_match("/msie|edge/", $user_agent)) {
$respone->header('Content-Disposition', "attachment; filename=\"$encoded_filename\"");
} elseif (preg_match("/safari/", $user_agent)) {
$respone->header('Content-Disposition', "attachment; filename=\"$sourceName\"");
} else {
$respone->header('Content-Disposition', "attachment; filename=\"$sourceName\"; filename*=utf-8\"$encodefilename\"");
}
return $respone;
} else {
throw new Exception('文件不存在,下載文件失敗');
}