5.6.php.htm

来自「php5的最新帮助文档」· HTM 代码 · 共 144 行 · 第 1/2 页

HTM
144
字号
<html>
<head>
<meta content="text/html; charset=gb2312" http-equiv=Content-Type>
<title>广告轮播</title>
<style type="text/css">
  a {text-decoration: none;color:#6666ff;}
  a:hover {color:#ff0000;}
</style>
</head>
<body bgcolor=ffffff leftmargin=0 topmargin=0 marginheight=0 marginwidth=0>
<p>
<div align=center><table border=0 width=70%><tr>
<td valign=middle width=20><hr size=1 width=100%></td>
<td valign=middle nowrap><font color=e06060 size=+2><b>广告轮播</b></font></td>
<td valign=middle width=100%><hr size=1 width=100%></td>
</tr></table></div><p>
<div align=center><table border=0 width=70%><tr><td>

网络广告,变成了 Internet 上的热门学问。而 468x60 更变成了广告人员绞尽脑汁的尺寸。<p>

在处理广告时,若能直接使用浏览器将广告的 468x60 图文件送到处理广告的服务器中,相信是件很舒服的事,不用再开 FTP 程序,搞大半天只为了 upload。<p>

这个问题,是所有 Web CGI 程序的痛,包括 ASP、Prel....等等,都需要再经过系统元件的增加才能达成。号称最强的 Web CGI 程序: PHP,在这方面的表现没有令人失望,甚至傲视其它的 CGI 工具。<p>

File Upload 功能在 RFC 1867 文件有有详细的说明,是利用特殊的文件格式 (content-type) multipart/form-data。值得注意的是浏览器一定要用 Netscape 3.0 以上或 MS Internet Explorer 4.0 以上的版本才能将文件上传。<p>

先看下面的 HTML 源代码<p>

<div align=center><table border=1 bgcolor=ffe0e0><tr><td>
<font color="#000000">
&lt;form&nbsp;enctype="multipart/form-data"&nbsp;action="next.php"&nbsp;method=post&gt;<br>您的大名:&nbsp;&lt;input&nbsp;type=text&nbsp;name=user&gt;&lt;br&gt;<br>文件名称:&nbsp;&lt;input&nbsp;name="myfile"&nbsp;type="file"&gt;&lt;br&gt;<br>&lt;input&nbsp;type="submit"&nbsp;value="送出"&gt;<br>&lt;/form&gt;<br></font>
</td></tr></table></div><p>

在 form 的标签中,要加入 enctype="multipart/form-data" 的字符串,表示用户输入的资料上有文件上传,同时 method 一定要用 POST 而不能用 GET。<p>

在上面的码中,若用户姓名填入 Wilson Peng,并选 c:\myphoto.gif 的文件,在用户按下送出键后,浏览器则传送出下面的 POST 资料。<p>

<pre>

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--

</pre><p>

看到上面的资料中,boundary=AaB03x 即为分开不同字段资料的信息,其中的 AaB03x 编码方法,视浏览器的版本不同而异,通常是浏览器哈稀产生的。之后就可以看到用 --AaB03x 来隔开不同的字段。<p>

以上面为例,处理 form 的 action 程序 next.php,会主动产生四个变量,见下表<p>

<table border=1>
<tr><th>变量名</th><th>说明</th></tr>
<tr><td>$myfile</td><td>即上传的文件内容</td></tr>
<tr><td>$myfile_name</td><td>上传文件在用户端的名称</td></tr>
<tr><td>$myfile_size</td><td>上传文件的大小</td></tr>
<tr><td>$myfile_type</td><td>上传文件的格式,如 "image/gif"</td></tr>
</table><p>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?