ホームページ  >  記事  >  バックエンド開発  >  PHP で複数のファイルをサーバー インスタンスにアップロードする、_PHP チュートリアル

PHP で複数のファイルをサーバー インスタンスにアップロードする、_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:15:46673ブラウズ

PHP 複数のファイルをサーバー インスタンスにアップロードします、

この記事の例では、PHPで複数のファイルをサーバーにアップロードする実装方法を説明します。複数のファイルが同時にサーバーにアップロードされる状況では、配列の形式でパラメーター転送を使用し、データをトラバースアップロードする必要があります。具体的な操作手順は次のように分析されます。

1. 例

画像をサーバーにアップロードすることは、プログラム開発プロセスにおいて不可欠な機能です。画像共有の目的を達成できるだけでなく、Web サイトへのアクセス数を増やし、Web サイトのコンテンツを充実させることもできます。この例では、POST を通じて複数の画像をアップロードする方法を説明します。

2. 主要なテクノロジー

複数のファイルのアップロードの鍵となるのは、アップロードされるファイル要素の名前を定義する方法と、アップロードされるファイルの数を決定する方法です。この例では、アップロードするファイル名を配列形式で定義します(アップロードするファイル名は「files[]」)。任意の数の写真 (4 枚以内) をアップロードするという目的を達成するために、array_filter() 関数とコールバック関数を使用して、アップロードされたファイルの処理中に配列内の空の要素を削除します。

array_filter() 関数はコールバック関数を使用して配列内のユニットをフィルタリングします。 構文は次のとおりです。


コードをコピー コードは次のとおりです:array array_filter(array input[,callback callback])
array_filter() 関数は、入力配列内の各値をコールバック関数に順番に渡します。コールバック関数が TRUE を返した場合、入力配列の現在の値が返された結果配列に含まれ、配列のキー名は変更されません。

注意: 配列内の要素を追加または削除するなど、コールバック関数内の配列を変更しないでください。配列が変更されると、この関数の使用は無意味になります。 callback() 関数が指定されていない場合、array_filter() は入力内の値が FALSE であるすべての要素を削除します。 この例で定義されているコールバック関数は check() で、配列内の要素値が空かどうかを確認するために使用されます。その構文は次のとおりです。


コードをコピーします

コードは次のとおりです:function check($var){//配列の戻り値が空かどうかを確認します return($var!="");
}

注: POST メソッドを使用して複数の画像のアップロードを実装するには、フォームの作成時に enctype="multipart/form-data" 属性を指定する必要があります。アップロードされるファイルのサイズを非表示フィールド MAX_FILE_SIZE の値によって制御したい場合は、アップロードされたファイルのファイル フィールドの前に非表示を配置する必要があります。そうしないと機能しません。

3. デザインプロセス

(1)index.phpファイルを作成します。フォームを追加し、ファイル フィールドと送信ボタンを設定し、POST メソッドを使用して enctype="multipart/form-data" を設定し、index_ok.php ページにデータを送信して、複数のファイルのアップロード操作を完了します。は次のとおりです:

コードをコピーします

コードは次のとおりです:
















(2)index.php ファイル内で、データベースに接続し、データベースに格納されているデータを読み取り、アップロードされたファイルのページ出力を実現します。コードについては、CD の関連コンテンツを参照してください。

(3) フォームに送信されたデータを取得するためのindex.phpファイルを作成し、複数のファイルをサーバーに保存し、ファイルの名前と保存パスをデータベースに保存します。 コードは次のとおりです。

コードをコピーします

コードは次のとおりです:

header("Content-type:text/html;charset=UTF-8"); //ファイルのエンコード形式を設定します
include"conn/conn.php" //データベースリンクファイルをインクルードします
if($_POST[ファイル]!=""){
if(! is_dir("./upfile")){
mkdir("./upfile");//アップロードファイル保管フォルダを作成
}
$data=date("Y-m-d H:m:s") //時間を定義します
function check($var){ //配列の戻り値が空かどうかを検証します
return($var!="");//空でない場合は配列要素を返す
}
$files=array_filter($_POST["files"],"check");//配列内のnull値を削除します
$array=array_filter($_FILES["picture"]["name"],"check"); //配列内のnull値を削除します
foreach=($aarray as $key=>value){ //配列内のデータを読み取るループ
$path='upfile/'.time().$key.strto lower(strstr($value,".")) //アップロードファイルの保存場所を定義します
move_uploaded_file($_FILES["picture"]["tmp_name"][$key],$path);//アップロード操作を実行します
$query="tb_up_file(file_test,data,file_name)values('$path','$data''$files[$key]') に挿入";
$result=mysql_query($query);
}
エコー"<スクリプト>
alert('画像は正常にアップロードされました');window.location.href='index.html';";
}
?>

4. 追加スキル

疑似静的テクノロジーを通じて PHP ファイルのサフィックスを非表示にします。
まず、Apache サーバー構成ファイル httpd.conf を変更します。 httpd.conf ファイルを開き、次の場所に移動します:

コードをコピーします コードは次のとおりです:
#LoadModule rewrite_module modules/mod_rewrite.so

この項目の前にある「#」を削除して開始します。
次に、httpd.conf ファイルを検索し、その中の「AllowOverride」項目を見つけて、その値を「All」に変更します。変更を有効にするには、Apache サーバーを保存して再起動します。
最後に、インスタンスのルート ディレクトリに .htaccess ファイルを作成して、PHP ファイルのサフィックスを非表示にします。 .htaccess ファイルのコードは次のとおりです:

コードをコピーします コードは次のとおりです:
RewriteEngine On#Startup item
RewriteRule^index.html$index.php
RewriteRule^ndex_ok.html$index_ok.php
RewriteRule^index-([0-9]+)-([0-9]+)-([0-9]+).html$index.php?vv=$1&ljjl=$2&page=$3[L]

正規表現を使用してファイル接尾辞と渡されたパラメータを照合し、PHP ファイル接尾辞の非表示操作を完了します。

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/902783.html技術記事 PHP で複数のファイルをサーバー インスタンスにアップロードする この記事では、PHP で複数のファイルをサーバー インスタンスにアップロードする実装方法について説明します。複数のファイルを同時にサーバーにアップロードするには、次のことを行う必要があります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
コンテンツ 1: ="30">
コンテンツ 2: ="30">