php ファイルをアップロード php ファイルをデータベースにアップロード
PHP はどのようにしてデータベースにファイルをアップロードしますか? ここでは、PHP でファイルを MySQL データベースに保存する方法と、PHP でファイルをアップロードしてデータベースに保存する方法をマスターします。
phpがデータベースにファイルをアップロード このファイルを保存するには、データベースにlongblobフィールドを作成するだけです。 ただし、4~5mのファイルをアップロードする場合、この時点で注意が必要な問題がいくつかあります 1、php.iniを変更します post_max_size アップロード_最大ファイルサイズ2つのパラメータの値は、アップロードする必要があるファイルのサイズより大きくしてください 2、my.cnfを変更します mysqlデータベースのmax_allowed_packetパラメータの値を変更します。 このパラメータの意味は次のとおりです。 max_allowed_packet バッグの最大サイズ。メッセージ バッファは net_buffer_length バイトに初期化されますが、必要に応じて max_allowed_packet バイトまで増やすことができます。デフォルトでは、この値は小さすぎるため、大きな (エラーの可能性がある) パケットをキャプチャできません。大きな BLOB 列を使用している場合は、この値を増やす必要があります。使用する最大の BLOB と同じ大きさにする必要があります。 1. PHP は画像をデータベースにアップロードします 3つのphpファイルを作成します: readdir.php - 画像をデータベースに入れるコード image.php - 実際の画像を表示するコード view.php - データベースから画像を呼び出す方法を示すコード 1.データベースを作成する テーブル `images` を作成 ( `imgid` int null ではない auto_increment、 `sixfourdata` ロングテキストが null ではありません。 主キー (`imgid`) );readdir.php 具体的な内容: $dbcnx = mysql_connect("localhost", "username", "password"); mysql_select_db("base64imgdb"); ?> 'ディレクトリを開く必要があります 「。/」 「readdir.php」ファイルは次のディレクトリにあります。 $path = "./"; $dir_handle = opendir($path) または die("ディレクトリ $path を開けません");画像を分類し、使用されているデータの一部を読み出す フォーペン '変換する Base64_encode 'テーブルに挿入 while ($file = readdir($dir_handle)) { $filetyp = substr($file, -3); if ($filetyp == 'gif' or $filetyp == 'jpg') { $handle = fopen($path . "/" . $file,'r'); $file_content = fread($handle,filesize($path . "/" . $file)); fclose($handle); $encoded = chunk_split(base64_encode($file_content)); $sql = "insert into images set sixfourdata='$encoded'"; mysql_query($sql); } } ?>設定したディレクトリを閉じて処理します。 closedir($dir_handle); echo("complete"); mysql_close($dbcnx); ?>画像を読み取るコード: image.php $dbcnx = mysql_connect("localhost", "username", "password"); mysql_select_db("base64imgdb"); ?>画像を読み出すために使用されるコード image.php?img=x: $img = $_request["img"]; ?>その後、データベースに接続して以下を読み取る必要があります。 $result = mysql_query("select * from images where imgid=" . $img . ""); if (!$result) { echo("リクエストエラー: " .mysql_error() . ""); 出口(); } while ($row = mysql_fetch_array($result)) { $imgid = $row["imgid"]; $encodeddata = $row["sixfourdata"]; } ?> mysql_close($dbcnx); echo base64_decode($encodeddata); ?> base64 でエンコードされた画像データ形式を理解します。
具体的な画像を見てみましょう!
image.php?img=1
image.php?img=357
readdir.php: ############################### # データベース接続 # これらの値を変更します ############################### $dbcnx = mysql_connect("localhost", "ユーザー名", "パスワード"); mysql_select_db("base64imgdb"); ############################### # db connection # change these values ############################### $dbcnx = mysql_connect("localhost", "username", "password"); mysql_select_db("base64imgdb"); $path = "./"; $dir_handle = opendir($path) または die("ディレクトリ $path を開けません"); while ($file = readdir($dir_handle)) { $filetyp = substr($file, -3); if ($filetyp == 'gif' または $filetyp == 'jpg') { $handle = fopen($file,'r'); $file_content = fread($handle,filesize($file)); fclose($handle); $encoded = chunk_split(base64_encode($file_content)); $sql = "画像に挿入 set sixfourdata='$encoded'"; mysql_query($sql); } } closedir($dir_handle); echo("完了"); mysql_close($dbcnx); ?> image.php: $dbcnx = mysql_connect("localhost", "ユーザー名", "パスワード"); $dbcnx = mysql_connect("localhost", "username", "password"); mysql_select_db("base64imgdb"); $img = $_request["img"]; $result = mysql_query("select * from image where imgid=" . $img . ""); if (!$result) { echo("クエリ実行エラー: " . mysql_error() . ""); 出口(); } while ($row = mysql_fetch_array($result) ) { $imgid = $row["imgid"]; $encodeddata = $row["sixfourdata"]; } mysql_close($dbcnx); エコーbase64_decode($encodeddata); ?> view.php (これを投稿する必要はありません..) ..2. PHP でファイルをアップロードしてデータベースに保存する方法 1. show_info.php
$num=mysql_num_rows($result); if($num $data = mysql_result($result,0,"file_data"); $type = mysql_result($result,0,"file_type"); $name = mysql_result($result,0,"file_name"); mysql_close($conn); //まず対応するファイルヘッダーを出力し、元のファイル名を復元します header("コンテンツタイプ:$type"); header("コンテンツの性質: 添付ファイル; ファイル名=$name"); $data をエコーします。 ?> 2.show_info.php
$sql = "id=$id の受信から file_name 、file_size を選択"; $result = mysql_query($sql,$conn); if(!$result) die(" エラー: mysql クエリ"); //指定されたレコードがない場合、エラーが報告されます $num=mysql_num_rows($result); if($num //プログラムの次の2文は次のように書くこともできます //$row=mysql_fetch_object($result); //$name=$row->名前; //$size=$row->サイズ; $name = mysql_result($result,0,"ファイル名"); $size = mysql_result($result,0,"file_size"); mysql_close($conn); echo " アップロードされたファイル情報:"; echo " ファイルの名前 - $name"; echo " ファイルのサイズ - $size"; 「 添付ファイル」をエコーします。 ?> 3.submit.php
$myfile=$_files["myfile"]; //タイムアウト制限時間を設定します。デフォルト時間は 30 秒です。0 に設定すると、時間制限はありません。 $time_limit=60; set_time_limit($time_limit); // //ファイルの内容を文字列に読み込みます $fp=fopen($myfile['tmp_name'], "rb"); if(!$fp) die("ファイルオープンエラー"); $file_data = addedlashes(fread($fp, filesize($myfile['tmp_name']))); fclose($fp); unlink($myfile['tmp_name']); //ファイル形式、名前、サイズ $file_type=$myfile["タイプ"]; $file_name=$myfile["名前"]; $file_size=$myfile["サイズ"]; die($file_type); //データベースに接続し、ファイルをデータベースに保存します $conn=mysql_connect("localhost","root","admin"); if(!$conn) die("エラー: mysql 接続に失敗しました"); mysql_select_db("nokiapaymentplat",$conn); $sql="受信に挿入 (ファイルデータ、ファイルタイプ、ファイル名、ファイルサイズ) 値 ('$file_data','$file_type','$file_name',$file_size)"; $result=mysql_query($sql,$conn); //次の文は、先ほど挿入したステートメントの ID を取り出します。 $id=mysql_insert_id(); mysql_close($conn); set_time_limit(30); // デフォルトのタイムアウト設定を復元します echo "アップロード成功--- "; echo "アップロードされたファイル情報を表示"; } それ以外 { echo "ファイルはアップロードされていません"; } ?> 4. アップロード.php |

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
