ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでのファイルのアップロード

PHP_PHP チュートリアルでのファイルのアップロード

WBOY
WBOYオリジナル
2016-07-21 15:59:39743ブラウズ

PHP では、ファイルのアップロードは通常、move_uploaded_file() を通じて実装されます。
bool move_uploaded_file (string filename, string destination) この関数は、filename で指定されたファイルが正当なアップロード ファイル (つまり、PHP の HTTP POST アップロード メカニズムを通じてアップロードされたファイル) であることをチェックし、保証します。ファイルが正当な場合は、宛先で指定されたファイルに移動されます。

filename が合法的にアップロードされたファイルではない場合、操作は行われず、move_uploaded_file() は FALSE を返します。

filename が合法的にアップロードされたファイルであるにもかかわらず、何らかの理由で移動できない場合、操作は行われず、move_uploaded_file() は FALSE を返します。警報も発令されています。

以下では、例を使用して、PHP がファイルのアップロードを実装する方法を説明します。
test.php 元のファイル

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


Web サイト ファイルのアップロード例
form-data" action=action.php method=post>






MAX_FILE_SIZE 隠しフィールド (単位はバイト) はファイル入力フィールドの前に配置する必要があり、その値は受信したファイルの最大サイズです。これはブラウザに対する推奨事項であり、PHP もこれをチェックします。この設定はブラウザ側で簡単にバイパスできるため、この機能を使用して大きなファイルをブロックすることは期待しないでください。実際、PHP 設定の最大アップロード ファイル サイズは期限切れになりません。ただし、この項目をフォームに追加することをお勧めします。これにより、ユーザーが大きなファイルのアップロードを待って時間を費やした後に、ファイルが大きすぎてアップロードに失敗したというトラブルを回避できます。

注: ファイル アップロード フォームの属性が enctype="multipart/form-data" であることを確認してください。そうでない場合、ファイルはアップロードされません。

アップロード処理ページでは、アップロードされたファイル情報は配列 $_FILES を通じて取得されます。上の例に示すように、ファイルアップロードフィールドの名前が「upfile」であると仮定すると、ファイル情報は次のようになります:

$_FILES['upfile']['name']

アップロードされたファイルの元のファイル名ファイル。

$_FILES['upfile']['type']

ファイルの MIME タイプ (ブラウザーがこの情報を提供する場合)。例は「画像/gif」です。ただし、この MIME タイプは PHP 側ではチェックされないため、この値があることを当然のことと考えないでください。

$_FILES['upfile']['size']

アップロードされたファイルのサイズ (バイト単位)。

$_FILES['upfile']['tmp_name']

ファイルのアップロード後にサーバーに保存される一時ファイル名。

$_FILES['upfile']['error']

ファイルのアップロードに関連するエラー コード。

PHP は、対応するエラーコードをファイル情報配列とともに返します。このコードは、ファイルのアップロード時に生成されるファイル配列のエラー フィールドにあります。コードは次のとおりです:

UPLOAD_ERR_OK

値は 0 で、ファイルは正常にアップロードされます。

UPLOAD_ERR_INI_SIZE

値は 1 で、アップロードされたファイルは php.ini の Upload_max_filesize オプションで制限された値を超えています。デフォルト値は 2M です。より大きなファイルをアップロードしたい場合は、php.ini で Upload_max_filesize = 2M を検索すると、変更が有効になります。

UPLOAD_ERR_FORM_SIZE

値は 2 で、アップロードされたファイルのサイズが HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。

UPLOAD_ERR_PARTIAL

値は 3 で、ファイルのアップロードは不完全で、その一部のみがアップロードされています。

UPLOAD_ERR_NO_FILE

値は 4 で、ファイルのアップロードは失敗しました。

UPLOAD_ERR_NO_TMP_DIR

値は 6 で、一時フォルダーが見つかりません。 PHP 4.3.10 および PHP 5.0.3 が導入されました。

UPLOAD_ERR_CANT_WRITE

値は 7 で、ファイルの書き込みに失敗しました。 PHP5.1.0が導入されました。

注: 上記の値は、PHP 4.3.0 以降は PHP 定数になりました。
action.php の元のコード
/**
学習経験を交換するための私たちのウェブサイトへようこそ

*/

function getname($exname){
$dir = "tmp/"
if(!is_dir; ( $dir)){
mkdir($dir,0777);
}

while(true){
if(!is_file($dir.$i.".".$exname)){
$name=$ i .".".$exname;
ブレーク; file']['name' ],(strrpos($_FILES['upfile']['name'],'.')+1)); = getname($exname);

if (move_uploaded_file($_FILES['upfile' ]['tmp_name'], $uploadfile)) {
echo "

ファイルが正常にアップロードされました。



" ;
}else {
echo "

ファイルのアップロードに失敗しました!< /h2>

";
}
echo "以下はファイルのアップロードに関する情報です:
['upfile']['type']
"
< br>一時的ファイル名: ".$_FILES['upfile']['tmp_name']
"

ファイルサイズ: ".$_FILES['upfile']['size'] .
"< br>
エラー コード: ".$_FILES['upfile']['error'];
?>

アップロードされたファイルが配置されているフォルダーのアクセス許可が少なくとも 777 であることを確認してください。これはサーバー上で特に顕著ですが、作成したアップロード コードにはエラーがない場合がありますが、その理由はここにあります。

この記事では、PHP を介してファイルをアップロードする方法についてのみ説明します。この部分を読んでいない友人は参照してください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/317265.html技術記事 PHP では、ファイルのアップロードは通常、move_uploaded_file() を通じて実装されます。 boolmove_uploaded_file(stringfilename,stringdestination) この関数は、filename で指定されたファイルが...

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