PHPファイルのアップロードの実例の详しい解!!!


まず、アップロード部分のフォームコードを見てみましょう.
CODE:      <form method="post" action="upload.php" enctype="multipart/form-data">
     <table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
      <tr>
        <td width=55 height=20 align="center"><input type="hidden" name="MAX_FILE_SIZE" value="2000000"> : </TD>
        <td height="16">
        <input name="file" type="file"  value=" " >
         
        < input type="submit" value=" " name="B1">
        </td>
      </tr>
     </table>
     </form>
     
ここで注意すべき点はいくつかありますが、まずこの
を見てみましょう.ここではPOSTメソッドを採用しています.個別のブラウザではPUTメソッドもサポートされています.もちろん、スクリプトを修正する必要があります.私はそうはお勧めしません.フォームにenctype="multipart/form-dataを設定する必要があります.これにより、サーバはアップロードファイルに通常のフォーム情報が含まれていることを知っています.これは設定する必要があることを覚えておいてください.また、アップロードファイルの最大長を制限する隠しドメインが必要です:,ここでnameはMAX_FILE_SIZEに設定する必要があります.その値はアップロードファイルの最大長で、単位はBです.ここでは2 Mに制限します.,type="file"ファイルのタイプを説明して、このような基本的なアップロードファイルのインタフェースは完成して、次にPHPでアップロードしたファイルを処理する方法を話して、それからあなたのphp.iniで設定したアップロードファイルの最大長さは実際のアップロードに影響する可能性があります.実際の状況に応じて修正してください.PHPのアップロードはまず一時ディレクトリに転送され、指定されたディレクトリに移動します.一時ディレクトリは、必要に応じて変更するか、デフォルト値を使用します.はい、フォームをuploadに提出します.php、このページを見てみましょう:[php]";}//生成先ファイルのファイル名else{$filename=explode(.",$FILES['file'][name']);do{$filename[0]=random(10);//乱数長$name=implode(".",$filename);            //$name1=$name.".Mcncc";            $uploadfile=$uploaddir.$name;}while(file_exists($uploadfile);if(move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile){if(is_uploaded_file($_FILES['file']['tmp_name']){//出力ピクチャプレビューecho「
ファイルのアップロードが完了しました.画像プレビュー:

」;echo"
继续应用程序
";}else{echo「アップロード失敗!」;}}}?>[/php]これを見たばかりで少し気を失っているかもしれませんが、大丈夫です.私の話を聞いてみると、実はこれはSO EASYです!!まず原理を話します.このプログラムはアップロード画像を例に、まずファイルタイプが画像フォーマットであるかどうかを判断し、もしアップロードファイルであれば、乱数と時間の組み合わせでファイルの名前を変更します(アップロードファイルの重複を避ける必要があります!)、次に指定されたディレクトリにファイルをアップロードし、正常にアップロードされるとアップロードされた画像プレビューを出力します.ここではプログラムのいくつかの関数について説明します.まずreturn substr(strrchr($filename,'.')、1)、strrchar()関数がどのような役割を果たすかを見てみましょう.例を挙げると、例えば画像ファイルpic.jpg、strrchrで処理し、strrchr(pic.jpg,'.')あ、.jpgを返します.分かりましたか.この関数は、指定した文字列が最後に表示された位置の文字を返します.substr()に合わせて私たちはjpgを取ることができて、このように私達はファイルの接尾辞の名前を得て、アップロードするファイルが指定のフォーマットに合うかどうかを判断します.本プログラムは指定のフォーマットを1つの配列の中に置いて、実際に使う時必要に応じて追加することができます.次に乱数のファイル名の部分を生むことを見て、私達はmt_srand()のこの関数を見て、マニュアルの上で彼を呼びます「より良い乱数発生器のシードを播く」とは、実は乱数の関数を初期化することであり、パラメータは(double)microtime()である.*1000000、ここではこれがパラメータでなければ自動的に乱数を設定します.もちろんこれは私たちのニーズに合わないので、乱数は一定の長さを備えており、アップロードファイルが重複しないことを保証します.次に、ファイルタイプを判断する関数を呼び出し、小文字strtolower(fileext($_FILES['file']['name']))に変換します.ああ、ここには重要な東東$_FILESがあります.これはスーパーグローバル配列で、処理するフォームデータを保存しています.register_globalsを開いたら、直接アクセスすることもできますが、これは安全ではありません.さっきのアップロードインタフェース