まず、LAMP が正常に設定されていることを確認します。
環境: Opensuse12.2 LAMP
今日実装するのは、PHP のファイル アップロード モジュールで、例として写真と PDF ドキュメントのアップロードを取り上げます。
手順は次のとおりです:
php.iniを変更する
Linux の /etc/php5/apache2 フォルダーに php.ini を配置し、ターミナルで実行します
[プレーン]
sudo vim /etc/php5/apache2/php.ini
sudo vim /etc/php5/apache2/php.ini
「/×××」を使用して vim で次の値を見つけて変更します:
upload_max_filesize = 10M
このオプションは、アップロードされるファイルの最大バイト長を示します。デフォルトは 2M、10M に変更されました
post_max_size = 12M
このオプションは、POST データに許可される最大バイト長を表します。デフォルトは 8M であり、upload_max_filesize よりもわずかに大きい値を設定することをお勧めします。
デフォルトのmemory_limitは128Mです。アップロードするファイルのサイズがこの値を超える場合は、変更する必要はありません。
変更後保存します。
プロジェクトを作成する
/srv/www/htdocs/ に test2 フォルダーを作成し、その中に、upload.html、upload_file.php という 2 つのファイルを作成します。また、アップロードされたファイルを保存するためのアップロード フォルダーも作成します。
まずアップロードフォルダーを処理し、その権限を変更します。
ターミナル実行:
【プレーン】
sudo chmod 777 アップロード -R
sudo chmod 777 アップロード -R
以下はコードのリストです。
upload.html
[html]
<フォームアクション="upload_file.php" メソッド="投稿"
enctype="multipart/form-data">
フォーム>
本文>
<フォーム アクション="upload_file.php" メソッド="投稿"
enctype="multipart/form-data">
フォーム>
アップロードファイル.php
[php]
{
if ($_FILES["ファイル"]["エラー"] > 0)
{
それ以外は
{
echo "アップロード: " . $_FILES["ファイル"]["名前"] "
";
echo "タイプ: " . $_FILES["ファイル"]["タイプ"] "
";
echo "サイズ: " . ($_FILES["ファイル"]["サイズ"] / 1024) " Kb
";
echo "一時ファイル: " . $_FILES["ファイル"]["tmp_name"] "
";
If (file_exists("upload/" . $_FILES["file"]["name"]))
echo $_FILES["ファイル"]["名前"] . " すでに存在します。 ";
}
それ以外は
Move_uploaded_file($_FILES["ファイル"]["tmp_name"],
"アップロード/" . $_FILES["ファイル"]["名前"]);
echo "保存場所: " . "upload/" . $_FILES["ファイル"]["名前"];
}
}
}
それ以外は
{
「無効なファイル」をエコーします
}
?>
if(($_FILES["ファイル"]["タイプ"] == "画像/png")||($_FILES["ファイル"]["タイプ"] == "アプリケーション/pdf"))
{
if ($_FILES["ファイル"]["エラー"] > 0)
{
echo "リターンコード: " 。 $_FILES["ファイル"]["エラー"] 。 "
";
}
それ以外
{
echo "アップロード: " 。 $_FILES["ファイル"]["名前"] 。 "
";
echo "タイプ: " 。 $_FILES["ファイル"]["タイプ"] 。 "
";
echo "サイズ: " 。 ($_FILES["ファイル"]["サイズ"] / 1024) 。 " Kb
";
echo "一時ファイル: " 。 $_FILES["ファイル"]["tmp_name"] 。 "
";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["ファイル"]["名前"] 。 「すでに存在します。」;
}
それ以外
{
move_uploaded_file($_FILES["ファイル"]["tmp_name"],
"アップロード/" 。 $_FILES["ファイル"]["名前"]);
echo "保存場所: " 。 "アップロード/" 。 $_FILES["ファイル"]["名前"];
}
}
}
それ以外
{
echo "無効なファイル";
}
?>
簡単に説明します。
html ファイルは、ユーザーとのやり取りを処理するために使用される形式であり、そのようなものとして実行されます。
良いファイルを選択し、ポイントを送信した後、後台の処理がphpを完了します。
php は、ファイル全体のプロパティを取得し、それに対応する処理を実行します。
$_FILES["file"]["error"] 中放的是出错代码,对应的错误如下:
编码
值
说明
アップロード_エラー_OK
0
文件成功上传
UPLOAD_ERR_INI_SIZE
1
文件大小比php.ini中upload_max_filesize指定值要大
UPLOAD_ERR_FORM_SIZE
2
ファイルの小比表单のMAX_FILE_SIZE指定の值大
アップロード_エラー_部分
3
文件上传不完整(请求時間间过长被终止の可能性あり)
UPLOAD_ERR_NO_FILE
4
無文件付随请求上传
UPLOAD_ERR_NO_TMP_DIR
6
php.ini 内に指定された時間無しの文書夹
ここまでは多くの違いがありましたが、拡張することもできます。たとえば、上方のファイルを転送するときにレベルストリップを表示したり、上方のファイルを転送すると同時に入力データを書き込んでから、ファイルをトップページに表示したり、以下に名前を付けることができます。
時間の関係で、ここに到着しました。
http://www.bkjia.com/PHPjc/477552.htmlwww.bkjia.com
本当