PHP3を使用したファイルアップロードの実装
Jun 21, 2016 am 09:02 AMPHP3 は非常に強力な CGI スクリプト言語、その言語機能は基本的に C から派生しており、その実装は PERL に似ており、データベースに対する固有のサポートにより実現されています。 ASP の強力な敵。
まずフロントデスクにインターフェースが必要です
> < < FORM ENCTYPE = " SubmitForm
"
ACTION = "upload.php3" METHOD = "POST" >
< INPUT TYPE = "hidden" NAME = "MAX_FILE_SIZE" ="1000000" >
< NAME = "アップロードファイル
"
TYPE = "ファイル" SIZE = "30" < /TD >
< TR >
< 入力名 =
"
送信 " TYPE = "送信"
< 入力名 = "リセット"値 =
"
リセット" < /TD > /TR > < /FORM > < /BODY > >
> MAX_FILE_SIZE の非表示の値の範囲は次のとおりです。
VALUE
を設定すると、アップロードされる ファイル のサイズを制限できます。
次に、バックグラウンドでファイルのアップロード操作を実装します。最も基本的なアップロードであれば、
If($UploadFile != "なし") { copy($UploadFile,"$UploadFile_name");
unlink($UploadFile)
}
else
{
echo "アップロードするファイルが選択されていません! ";
}
? > >
値が form
は自動的に同じ名前の変数に代入され、$UploadFileを介して直接渡されます >アップロードされたファイルにはアクセスできますが、これ以降がファイルを保存する変数である場合、ファイル名は別の $UploadFile_name 変数を通じて取得する必要があります。一時ファイルをコピーした後、一時ファイルを削除します (リンク解除)。 上記のコードは完全に動作しますが、実際のアプリケーションでは抜け穴がたくさんあります。
まず、アップロードされたファイルを固定ディレクトリに保存する必要があります。ここでは
$UploadPath
を使用します。 > $UploadPath = "/home など、 変数に保存します。 /flier/upload/";
またはより複雑な自動位置決め (
$アップロードパス = AddSlashes
(ディレクトリ名
($PATH_TRANSLATED))."\upload\"; PATH_TRANSLATED名前が示すように、現在の送信ディレクトリです。
アップロードされたファイルを保存するための
upload
という名前のサブディレクトリであると仮定します。 dirname関数はディレクトリ名を返し、サブディレクトリ名 を追加します。 次に、変数 $FileName
を使用して、アップロードされた完全なファイル名とパス $FileName を保存します。 = $ UploadPath.$UploadFile_name; 次に、上に示すように、アップロードされたファイル の簡単な情報もユーザーに知ってもらいたいと考えています。 if($UploadFile_size < 1024)
// アップロードファイル サイズ
{
$FileSize = (文字列)$UploadFile_size . " バイト ";
}
elseif($UploadFile_size < (1024 * 1024))
{
$FileSize = number_format((double)
($UploadFile_size / 1024)、1) . " KB";
else
$FileSize =
number_format((double) ($UploadFile_size / ( 1024 * 1024)) , 1) . "MB";
}
number_format 関数は、出力をフォーマットする役割を果たします。具体的な使用方法については、マニュアルを参照してください。 次のステップ 状況を考慮する必要があります。ファイルがすでに存在し、コピー操作が失敗する場合、対応するプロンプト情報を提供します
if(!
file_exists($FileName)) {
if(copy($
UploadFile,$FileName)) { echo "
ファイル
$ アップロードファイル名
($FileSize)アップロード成功! ";
} else { echo " ファイル
$
アップロードファイル名
アップロードに失敗しました! "; } unlink($UploadFile); } else {
echo "
ファイル
$
UploadFile_name
は既に存在します。 "; } 次に、大きなファイルをアップロードするときにタイムアウトが発生しやすいことを考慮する必要があります。
を使用できます。 set_time_limit
($TimeLimit); タイムアウト制限時間を増やします 。 最後に、セクションと実装コードを 1 つのファイルに結合します。これを実現するには、 形式の >< に暗黙の値 <🎜 を追加します。 ; INPUT TYPE = "hidden" NAME = "UploadAction" VALUE = "1" > 別の方法で処理できるように現在の状態 (インターフェイスまたは実装) を示します。 完成したコードは次のとおりです (ファイル名 upload.php3)
< if(
!$): <
< HEAD >
ファイル アップロード インターフェイス
multipart /form-data" NAME =
"
SubmitForm" ACTION = "upload.php3" METHOD = "POST" >
< ; 入力タイプ = "隠し" 名前 = "MAX_FILE_SIZE" >
< 入力タイプ = "隠し" 名前 = "
UploadAction" VALUE = "1" >
< TR > < TD >< INPUT NAME = "
UploadFile " TYPE =
"file" SIZE = "30" >< /TD > < /TR >
< TR >
< 入力名 = "送信" 値 =
送信
" TYPE = "送信" >< /TD >
< TD >< 入力名 = "リセット" 値 = "
リセット
" TYPE = "リセット" > < > < /FORM ></BODY >
:
< HEAD >
<
ファイルアップロードコード<ヘッド >
<
= 0; TimeLimit=60; /*
タイムアウト制限時間を設定します
デフォルトの時間は 30 秒
時間無制限の場合は 0 に設定します */
set_time_limit($TimeLimit );
If(($UploadFile != "なし")&&
($UploadFile != " " ))
{
$UploadPath = AddSlashes(dirname
($PATH_TRANSLATED))."\upload\"; アップロードファイル ストレージパス
$FileName = $UploadPath.$UploadFile_name ; 🎜> //
アップロードファイル名
if($UploadFile_size < 1024)
// アップロード ファイル サイズ {
$
FileSize = ( string)$UploadFile_size . " バイト"; elseif
($UploadFile_size < (1024 * 1024)) { $FileSize =
number_format
((double) ($UploadFile_size / 1024), 1) . " KB"; }
else { $
FileSize
=
number_
format((double) ($UploadFile_size / (1024 * 1024)), 1) " }
if(!file_exists
($
ファイル名
)) { if(copy($UploadFile,$FileName))
{
echo "ファイル
$アップロードファイル名 ($FileSize) アップロード成功! "; } else { echo "
ファイル
$アップロードファイル名 アップロードに失敗しました! "; } unlink($UploadFile);
}
else { echo "
ファイル
$UploadFile_name は既に存在します。 "; } } else {
echo "アップロードするファイルが選択されていません! "
set_time_limit(30); >デフォルトのタイムアウト設定を復元します < A HREF = "upload.php3" >
< /A > >
endif
;

人気の記事

人気の記事

ホットな記事タグ

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

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

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

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

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

ホットトピック











Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する

Windows 11でタイトルバーの色を変更するにはどうすればよいですか?

Windows 11/10修復におけるOOBELANGUAGEエラーの問題

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法
