目次
ディスカッションに返信 (解決策)
ホームページ バックエンド開発 PHPチュートリアル PHPファイルのダウンロードが文字化けする問題

PHPファイルのダウンロードが文字化けする問題

Jun 23, 2016 pm 02:14 PM

ファイルのアップロードとダウンロードの機能を追加したいです。ファイルが大きい可能性があるため、サーバー上のファイルのパスをデータベースに保存し、ダウンロード時にそのパスに従ってファイルを読み取るという考えです。当初、アップロード時にページのファイル一覧に表示される中国語のファイル名が文字化けしていましたが、

mysql_query("SET NAMES 'utf8'");
ログイン後にコピー
を追加することで解消されました。その後、ダウンロード中に保存されるファイル名が文字化けする問題が発生したため、この問題を解決するためにこのコードも追加されました。しかし、ダウンロードしたファイルの中国語が文字化けしてしまいます。 txtのテキストでテストしてみたところ、英語やUTF-8形式のテキストは問題なかったのですが、デフォルトのANSIでは当然文字化けしてしまいました。サーバーに送信するときに文字化けするのか、データベースが UTF-8 でエンコードされているのかわかりませんが、マスター ページを変更する方法を教えてください。これも UTF-8 でエンコードされます。

curUser;	$logger = new CategoryLogger('log_definition');	if($notice!="auto")notice($notice);	$id=$mineid;//要下载文件的ID  	if(!isset($id) or $id=="") die("error:id none");  //定位记录,读出 	$conn=mysql_connect('10.4.16.102','root','abc') or die('Unable to connect .');       mysql_select_db('greenmine',$conn) or die(mysql_error($conn));	mysql_query("SET NAMES 'utf8'");    $sql=  "select * from file where id=$id";  	$result=  mysql_query($sql);  	if(!$result) die("error:mysql query");  	$num=mysql_num_rows($result);  	if($num<1) die("error:no this recorder");  	$data=mysql_result($result,0,"file_data");  //文件存储路径	$type=mysql_result($result,0,"file_type");  	$name=mysql_result($result,0,"file_name"); 	mysql_close($conn);  	$file_name=$name;	$file_dir=$data;	if   (!file_exists($file_dir))   {   //检查文件是否存在   			 echo   "文件找不到";    			exit;      	}   else   {  	$filePath = $file_dir;//此处给出你下载的文件在服务器的什么地方       $fileName = $file_name;       //此处给出你下载的文件名       $file = fopen($filePath, "r"); //   打开文件Header("Content-type:application/octet-stream ");Header("Accept-Ranges:bytes ");Header("Accept-Length:   " . filesize($filePath));Header("Content-Disposition:   attachment;   filename= " . $fileName);              //   输出文件内容       echo fread($file, filesize($filePath));       fclose($file);       exit;     }}?>
ログイン後にコピー


ディスカッションに返信 (解決策)

ファイル名が文字化けしていますか、それともファイルの内容が文字化けしていますか?
ライブラリにはファイル名のみが保存され、ファイルは独立して保存されます。ファイルを開くには $file = fopen($filePath, "r b");
ダウンロードするファイル名
Header("Content-Disposition:attachment; filename= " . $fileName);
ユーザーが使用する必要があります オペレーティング システム パッケージ

ファイル名が文字化けしていますか、それともファイルの内容が文字化けしていますか?

ライブラリにはファイル名のみが保存され、ファイルは独立して保存されます。ファイルを開くには $file = fopen($filePath, "rb");

ダウンロードするファイル名
Header("Content-Disposition:attachment; filename= " . $fileName);
ユーザーが使用するオペレーティング システム パッケージ
… ファイル名は正しいですが、中身が文字化けしています。ファイルはサーバー上に個別に保存されます。 rbに変更してもダメです

ファイル内容を操作しない限り、ファイル自体が文字化けしているとしか言えません

ファイル内容を操作しない限り、ファイル自体が文字化けしているとしか言えません。この問題は、この PHP ページのエンコード形式を UTF-8+bom から UTF-8 に変更するだけで解決します。Bamboo さんにも感謝します。

doc または docx などの Word ファイルをアップロードしていただけますか。ダウンロード後に開くと、ファイルの内容は正常に表示されますか?

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

Instagram APIの紹介

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

LaravelのバックエンドでReactアプリを構築する:パート2、React

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP状況調査の発表

See all articles