mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 17:08:54 +00:00
Indentation.
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@30738 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
3200e472f9
commit
83e113ee43
2 changed files with 73 additions and 64 deletions
|
@ -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>
|
||||
|
|
|
@ -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: <INPUT NAME="userfile" TYPE="file">
|
||||
<INPUT TYPE="submit" VALUE="Send File">
|
||||
</FORM>
|
||||
</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: <INPUT NAME="userfile" TYPE="file">
|
|||
</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
Note that the "$userfile" 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
|
||||
"userfile".</para>
|
||||
|
||||
"userfile".
|
||||
</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: <INPUT NAME="userfile" TYPE="file">
|
|||
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: <INPUT NAME="userfile" TYPE="file">
|
|||
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: <INPUT NAME="userfile" TYPE="file">
|
|||
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: <INPUT NAME="userfile" TYPE="file">
|
|||
<input type="submit" value="Send files">
|
||||
</form>
|
||||
</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: <INPUT NAME="userfile" TYPE="file">
|
|||
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 <Directory> block or perhaps inside
|
||||
a <Virtualhost> 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
|
||||
|
|
Loading…
Reference in a new issue