ホームページ > バックエンド開発 > PHPチュートリアル > PHPファイルアップロードシステムの注意点_PHPチュートリアル

PHPファイルアップロードシステムの注意点_PHPチュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-21 15:43:21
オリジナル
1042 人が閲覧しました

システム全体はコーディングに PHP のみを使用しており、JS や正規表現は使用していません...純粋な PHP...実際、他には何も知りません...
以下は元の形式の HTML コードです...
ファイルをアップロード フォーム

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



マップ名:



ファイルパス:

"hidden" name=" MAX_FILE_SIZE" value="8000000">






フォーム内の enctype="multipart/form-data" の意味は、フォームの MIME エンコーディングを設定することです。デフォルトでは、このエンコード形式は application/x-www-form-urlencoded であり、ファイルのアップロードには使用できません。multipart/form-data が使用される場合にのみ、ファイル データが完全に転送され、次の操作が実行されます。 ="multipart/form -data" はバイナリ データをアップロードするためのもので、フォーム内の値はバイナリ ストリームで渡されます。
この文は役に立たないようです...アップロード ファイルのサイズを制限できるのは php.ini または set にのみあると思いました。後からアップロードするファイルのスクリプト内で... 私のプログラムでは、php.iniでupload_max_filesize=6Mを直接設定しました
以下はアップロードプログラムです
コードをコピーします


コードは次のとおりです。 : $uploaddir="./map/"; $typearr=array("rar","zip","w3m","w3x");
$findstr=array("/","\") ," ", "<",">"); //名前をフィルターします
$mapname=str_replace($findstr,'',($_POST['mapname'])); function upfiletype( $filename){
$arr=explode('.',$filename);
$a=count($arr)-1;
return $arr[$a];
//
関数 isNo($str){
$intarr=array('1','2','3','4','5','6','7','8', '9', '0','.');
$a=str_replace($intarr,'',$str);
return ($a=="")
/// ///ウィンドウサイズの制御///////
function html(){
echo <<ファイルアップロード



if ($mapname){
html();マップ名 ');
//アップロードされたファイルがあるかどうかを確認します
if(!is_uploaded_file($_FILES['map']['tmp_name'])){
html();ファイルをアップロードした、またはファイルをアップロードしました 6M を超えています");
}
//繰り返しアップロードされているかどうかを判断します
$clintfilename=str_replace($findstr,'',$_FILES['map']['name']) ;
if(isset($_COOKIE['アップロード']){
foreach($_COOKIE['アップロード'] as $value){
if($value==$clintfilename){
html(); 「再度アップロードしないでください」);
}
}
}
$filetype=strto lower(upfiletype($_FILES['map']['name']))
if(!in_array($filetype,$typearr); ){
html();
exit(" rar、zip、w3m、w3x をサポートする正しいマップ ファイルをアップロードしてください");
}
//サーバー ファイルが存在するかどうかを確認します
$filename=$mapname.' .$filetype;
for($a=1; $fopen=@fopen(($uploaddir.$filename),"r");$a++){
$filename=$mapname."$a".'.' .$filetype;
fclose($fopen);
}
$filepath=$uploaddir.$filename;
if(move_FILES['map']['tmp_name'] )){
// Cookie を繰り返しアップロードしましたか?
html(); $log=fopen("upload.log"," a7");
$logtxt=date("Ymd")."|".date("H:i")."|".$_SERVER["REMOTE_ADDR" ]."|".$filename."rn" ;
fwrite($log,$logtxt)
?>
初めて書くので…問題点が多く、何度も修正しながら書いています…アドバイスお願いします。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/320744.html技術記事システム全体はコード付きの PHP のみを使用しており、JS や正規表現は使用していません...純粋な PHP...実際、他には何も知りません...以下は元の形式の HTML コードです...ファイルフォームコードコードをアップロード...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート