ホームページ >バックエンド開発 >PHPチュートリアル >PHP は指定されたフォルダーにファイルをダウンロードし、ファイルのパスまたは名前がデータベースに保存されます。
PHP は指定されたフォルダーへのファイルのアップロードを実装しており、ファイルのパスまたは名前はデータベースに保存されます。これを実現する方法
専門家はいますか?よろしくお願いします。
-----解決策---------
<フォームアクション=""メソッド="ポスト" enctype="multipart/form-data"> <input type="file" name="img"> … </フォーム> <br><font color="#e78608">------解決策---------</font><br>データベース操作を完了します: <br>
<?php if(is_uploaded_file($_FILES['img']['tmp_name'])){ if(move_uploaded_file($_FILES['img']['tmp_name'], $target_name)){ //アップロードが成功してもデータベースに挿入する if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) { echo 'mysql に接続できませんでした'; 出口; } if (!mysql_select_db('mysql_dbname', $link)) { echo 'データベースを選択できませんでした'; 出口; } $sql = 'table_name(id, img_path) 値(img_id, $target_name) に挿入'; $result = mysql_query($sql, $link); if (!$result) { echo "DB エラー、データベースにテーブルを作成できませんでした"; echo 'MySQL エラー: ' mysql_error(); 出口; } mysql_free_result($result); } それ以外{ echo "アップロードに失敗しました"; } } ?> <br><font color="#e78608">------解決策---------</font><br>私もやります <br>
define(UPLOAD_ROOT,'アップロードフォルダーのパス'); 関数 false_random_name($string,$key){ #Pseudocode ユーザー名に基づいて擬似ランダムなファイル名を生成し、アップロード後にユーザー名としてアップロード時間を生成します # ただし、ファイル名からファイル所有者のユーザー名とアップロード時刻が特定できることがデコードの条件となります。 #復号化するには、データベースからユーザーのキーを取得する必要があります。キーはユーザー名の最初の 5 文字です。 #特定の暗号化および復号化コードの実装については、PHP 標準拡張ライブラリ Mcrypt extension の N メソッドを参照してください。 $fake_random_name を返します; } if(!is_writbale(UPLOAD_ROOT)){ die('アップロードするファイルのディレクトリをchownする必要があります。書き込み可能にしてください~'); }それ以外{ move_uploaded_file($_FILES['POST フォーム名']['tmp_name']; /* * このメソッドは、is_upload_file() メソッドを自動的に呼び出して、http rfc1867 プロトコルでアップロードされた正当なファイルかどうかを検出します。 * もちろん、必要な正当なファイル タイプ $_FILE[$_POST[name]][type] かどうか (pdf img ファイルかどうかなど) を制限することもできます。 */ $dbh = new mysqli('localhost','root','sa','your_db_name');#接続ファイルを保護するために、DSN をルート ディレクトリの外に配置することができます。 $sec_key = substr($_SESSION['ログイン名'],0,5); #鍵 $file_name = fake_random_name($_FILES['POST フォーム名']['tmp_name'],$sec_key); #暗号化された名前 $q_str = "tb(所有者,場所)値に挿入($_SEESION['ログイン名'],UPLOAD_ROOT.DIRECTORYSLASH.$file_name))";/SQL $dbh->クエリ($q_str); if($dbh->num_rows()==1) echo "アップロードは成功しました。データベース ファイルの詳細 (暗号化された) が挿入されました"; } <br><font color="#e78608">------解決策---------</font><br>ファイルを保存するパスを設定し、最後のファイルを保存しますファイルは move_uploaded_file 関数を通じてアップロードされ、アップロードされたファイル名がデータベースに挿入されます。 <br><font color="#e78608">------解決策------------------</font><br>学習してポイントを獲得 <div class="clear"></div>