ネット上ではオンライン広告が話題になっています。そして、468×60は広告スタッフが知恵を絞って求めるサイズになった。
広告を処理するときに、ブラウザを使用して広告の 468x60 の画像ファイルを広告を処理するサーバーに直接送信できれば、非常に快適です。FTP プログラムを開いて一日のほとんどを費やす必要はありません。アップロードする。
この問題は、ASP、Prel...などを含むすべてのWeb CGIプログラムにとって厄介であり、システムコンポーネントを追加することによってのみ実現できます。最も強力な Web CGI プログラムとして知られる PHP は、この点で期待を裏切らないパフォーマンスを発揮し、他の CGI ツールをも上回ります。
ファイルアップロード機能はRFC 1867文書で詳しく説明されており、特別なファイル形式(コンテンツタイプ)multipart/form-dataが使用されます。ファイルをアップロードするには、ブラウザが Netscape 3.0 以降、または MS Internet Explorer 4.0 以降である必要があることに注意してください。
まずは以下の HTML ソース コードを見てください
< form enctype='multipart/form-data' action='next.php' method=post > 您的大名: < input type=text name=user >< br > 档案名称: < input name='myfile' type='file' >< br > < input type='submit' value='送出' > < /form >
form タグでは、ユーザーが入力したデータにファイルがアップロードされていることを示す文字列 enctype='multipart/form-data' を追加する必要があり、メソッドはGET ではなく POST を使用しました。
上記のコードで、ユーザーの名前が Wilson Peng に入力され、ファイル c:myphoto.gif が選択されている場合、ユーザーが送信ボタンを押した後、ブラウザーは次の POST 素材を送信します。
Content-type: multipart/form-data, boundary=AaB03x --AaB03x content-disposition: form-data; name='user' Wilson Peng --AaB03x content-disposition: form-data; name='myfile' Content-type: multipart/mixed, boundary=BbC04y --BbC04y Content-disposition: attachment; filename='myphoto.gif' Content-type: image/gif Content-Transfer-Encoding: binary ...myphoto.gif 内容略... --BbC04y-- --AaB03x--
上の資料を見ると、boundary=AaB03xは資料を別のフィールドに残すというメッセージです。AaB03xのエンコード方法はブラウザのバージョンによって異なり、通常はブラウザのハッシュによって生成されます。次に、 --AaB03x が異なるフィールドを区切るために使用されていることがわかります。
上記の例では、フォームを処理するアクション プログラム next.php が 4 つの変数を自動的に生成します。以下の表を参照してください
変数名の説明
$myfile はアップロードされたファイルの内容です
$myfile_name は実際の名前ですユーザー内のアップロードされたファイルのサイズ
$myfile_size アップロードされたファイルのサイズ
$myfile_type 'image/gif' などのアップロードされたファイルの形式
next.php プログラムで行う最も重要なことは、次のことです。これら 4 つの変数をうまく活用しないと、プログラムが終了するとすぐに、ユーザーがアップロードしたファイルは失われます。したがって、まず $myfile を広告画像が保存されているディレクトリにコピーする必要があります
copy($banner,'/home1/biglobe3/ad/'.$banner_name);
このプログラムは、ファイルをディレクトリ /home/htdocs/ad に保存します。 /ad/myphoto.gif。重要なことは、保存するディレクトリは Web サーバーから読み取れないディレクトリにすることはできず、インターネット上で参照できるように、Web サイトのホームページが配置されているディレクトリに配置する必要があるということです。