Indentation.

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@30738 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Egon Schmid 2000-08-21 16:22:56 +00:00
parent 3200e472f9
commit 83e113ee43
2 changed files with 73 additions and 64 deletions

View file

@ -1,7 +1,7 @@
<chapter id="features.error-handling">
<title>Error Handling</title>
<title>Error Handling</title>
<para>
<para>
There are several types of errors and warnings in PHP. They are:
<table>

View file

@ -13,16 +13,15 @@
functions, you have full control over who is allowed to upload and
what is to be done with the file once it has been uploaded.
</simpara>
<para>
Note that PHP also supports PUT-method file uploads as used by
Netscape Composer and W3C's Amaya clients. See the <link linkend="features.file-upload.put-method">PUT Method Support</link>
for more details.</para>
Note that PHP also supports PUT-method file uploads as used by
Netscape Composer and W3C's Amaya clients. See the <link
linkend="features.file-upload.put-method">PUT Method
Support</link> for more details.
</para>
<para>
A file upload screen can be built by creating a special form which
looks something like this:
<example>
<title>File Upload Form</title>
<programlisting>
@ -31,14 +30,13 @@
Send this file: &lt;INPUT NAME=&quot;userfile&quot; TYPE=&quot;file&quot;&gt;
&lt;INPUT TYPE=&quot;submit&quot; VALUE=&quot;Send File&quot;&gt;
&lt;/FORM&gt;
</programlisting>
</programlisting>
</example>
The _URL_ should point to a PHP file. The MAX_FILE_SIZE hidden
field must precede the file input field and its value is the maximum
filesize accepted. The value is in bytes. In this destination file,
the following variables will be defined upon a successful upload:</para>
the following variables will be defined upon a successful upload:
</para>
<para>
<itemizedlist>
<listitem>
@ -66,19 +64,18 @@ Send this file: &lt;INPUT NAME=&quot;userfile&quot; TYPE=&quot;file&quot;&gt;
</simpara>
</listitem>
</itemizedlist>
Note that the &quot;$userfile&quot; part of the above variables is
whatever the name of the INPUT field of TYPE=file is in the upload
form. In the above upload form example, we chose to call it
&quot;userfile&quot;.</para>
&quot;userfile&quot;.
</para>
<simpara>
Files will by default be stored in the server's default temporary
directory. This can be changed by setting the environment variable
<envar>TMPDIR</envar> in the environment in which PHP runs. Setting
it using <function>putenv</function> from within a PHP script will
not work.</simpara>
not work.
</simpara>
<simpara>
The PHP script which receives the uploaded file should implement
whatever logic is necessary for determining what should be done
@ -87,11 +84,13 @@ Send this file: &lt;INPUT NAME=&quot;userfile&quot; TYPE=&quot;file&quot;&gt;
big. You could use the $file_type variable to throw away any
files that didn't match a certain type criteria. Whatever the
logic, you should either delete the file from the temporary
directory or move it elsewhere.</simpara>
directory or move it elsewhere.
</simpara>
<simpara>
The file will be deleted from the temporary directory at the end
of the request if it has not been moved away or renamed.</simpara></sect1>
of the request if it has not been moved away or renamed.
</simpara>
</sect1>
<sect1 id="features.file-upload.common-pitfalls">
<title>Common Pitfalls</title>
@ -99,12 +98,14 @@ Send this file: &lt;INPUT NAME=&quot;userfile&quot; TYPE=&quot;file&quot;&gt;
The MAX_FILE_SIZE item cannot specify a file size greater than the file
size that has been set in the upload_max_filesize in the PHP3.ini file
or the corresponding php3_upload_max_filesize Apache .conf directive.
The default is 2 Megabytes.</simpara>
The default is 2 Megabytes.
</simpara>
<simpara>
Please note that the CERN httpd seems to strip off everything
starting at the first whitespace in the content-type mime header
it gets from the client. As long as this is the case, CERN httpd
will not support the file upload feature.</simpara>
will not support the file upload feature.
</simpara>
</sect1>
<sect1 id="feature-fileupload.multiple">
@ -113,12 +114,13 @@ Send this file: &lt;INPUT NAME=&quot;userfile&quot; TYPE=&quot;file&quot;&gt;
It is possible to upload multiple files simultaneously and have
the information organized automatically in arrays for you. To
do so, you need to use the same array submission syntax in the
HTML form as you do with multiple selects and checkboxes:</simpara>
HTML form as you do with multiple selects and checkboxes:
</simpara>
<note>
<para>
Support for multiple file uploads was added in version 3.0.10.</para>
</note>
Support for multiple file uploads was added in version 3.0.10.
</para>
</note>
<para>
<example>
<title>Uploading multiple files</title>
@ -130,33 +132,37 @@ Send this file: &lt;INPUT NAME=&quot;userfile&quot; TYPE=&quot;file&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;Send files&quot;&gt;
&lt;/form&gt;
</programlisting>
</example></para>
</example>
</para>
<simpara>
When the above form is submitted, the arrays <computeroutput>$userfile</computeroutput>,
When the above form is submitted, the arrays
<computeroutput>$userfile</computeroutput>,
<computeroutput>$userfile_name</computeroutput>, and
<computeroutput>$userfile_size</computeroutput> will be formed in the global
scope (as well as in $HTTP_POST_FILES ($HTTP_POST_VARS in PHP 3)). Each of these will be a
numerically indexed array of the appropriate values for the
submitted files.</simpara>
<computeroutput>$userfile_size</computeroutput> will be formed in
the global scope (as well as in $HTTP_POST_FILES ($HTTP_POST_VARS
in PHP 3)). Each of these will be a numerically indexed array of
the appropriate values for the submitted files.
</simpara>
<simpara>
For instance, assume that the filenames
<filename>/home/test/review.html</filename> and
<filename>/home/test/xwp.out</filename> are submitted. In this
case, <computeroutput>$userfile_name[0]</computeroutput> would contain
the value <computeroutput>review.html</computeroutput>, and
<computeroutput>$userfile_name[1]</computeroutput> would contain the
value <computeroutput>xwp.out</computeroutput>. Similarly,
case, <computeroutput>$userfile_name[0]</computeroutput> would
contain the value <computeroutput>review.html</computeroutput>,
and <computeroutput>$userfile_name[1]</computeroutput> would
contain the value
<computeroutput>xwp.out</computeroutput>. Similarly,
<computeroutput>$userfile_size[0]</computeroutput> would contain
<filename>review.html</filename>'s filesize, and so forth.</simpara>
<filename>review.html</filename>'s filesize, and so forth.
</simpara>
<simpara>
<computeroutput>$userfile['name'][0]</computeroutput>,
<computeroutput>$userfile['tmp_name'][0]</computeroutput>,
<computeroutput>$userfile['size'][0]</computeroutput>, and
<computeroutput>$userfile['type'][0]</computeroutput> are also set.
</simpara>
</sect1>
<simpara>
<computeroutput>$userfile['name'][0]</computeroutput>,
<computeroutput>$userfile['tmp_name'][0]</computeroutput>,
<computeroutput>$userfile['size'][0]</computeroutput>, and
<computeroutput>$userfile['type'][0]</computeroutput> are also set.
</simpara></sect1>
<sect1 id="features.file-upload.put-method">
<title>PUT method support</title>
@ -164,12 +170,12 @@ Send this file: &lt;INPUT NAME=&quot;userfile&quot; TYPE=&quot;file&quot;&gt;
PHP provides support for the HTTP PUT method used by clients such
as Netscape Composer and W3C Amaya. PUT requests are much simpler
than a file upload and they look something like this:
<informalexample><programlisting>
<informalexample>
<programlisting>
PUT /path/filename.html HTTP/1.1
</programlisting></informalexample>
</programlisting>
</informalexample>
</para>
<para>
This would normally mean that the remote client would like to save
the content that follows as: /path/filename.html in your web tree.
@ -181,12 +187,12 @@ PUT /path/filename.html HTTP/1.1
placed almost anywhere in your Apache configuration file. A
common place is inside a &lt;Directory&gt; block or perhaps inside
a &lt;Virtualhost&gt; block. A line like this would do the trick:
<informalexample><programlisting>
<informalexample>
<programlisting>
Script PUT /put.php3
</programlisting></informalexample>
</programlisting>
</informalexample>
</para>
<simpara>
This tells Apache to send all PUT requests for URIs that match the
context in which you put this line to the put.php3 script. This
@ -206,16 +212,19 @@ Script PUT /put.php3
client. You would probably want to perform some checks and/or
authenticate the user before performing this file copy. The only
trick here is that when PHP sees a PUT-method request it stores
the uploaded file in a temporary file just like those handled bu the
<link linkend="features.file-upload.post-method">POST-method</link>.
When the request ends, this temporary file is deleted. So, your PUT
handling PHP script has to copy that file somewhere. The filename
of this temporary file is in the $PHP_PUT_FILENAME variable, and
you can see the suggested destination filename in the $REQUEST_URI
(may vary on non-Apache web servers). This destination filename is
the one that the remote client specified. You do not have to listen
to this client. You could, for example, copy all uploaded files to
a special uploads directory.</simpara></sect1>
the uploaded file in a temporary file just like those handled but
the <link
linkend="features.file-upload.post-method">POST-method</link>.
When the request ends, this temporary file is deleted. So, your
PUT handling PHP script has to copy that file somewhere. The
filename of this temporary file is in the $PHP_PUT_FILENAME
variable, and you can see the suggested destination filename in
the $REQUEST_URI (may vary on non-Apache web servers). This
destination filename is the one that the remote client specified.
You do not have to listen to this client. You could, for example,
copy all uploaded files to a special uploads directory.
</simpara>
</sect1>
</chapter>
@ -229,7 +238,7 @@ sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil