1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-28 09:22:15 +01:00
Files
archived-doc-es/reference/session/upload-progress.xml
Pedro Antonio Gil Rodríguez eddf0595d2 Updated to the most recent version
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@318428 c90b9560-bf6c-de11-be94-00142212c4b1
2011-10-26 11:11:10 +00:00

142 lines
5.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 8b6d169424ff189bb563ef4c3f35f8adff3f42c5 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="session.upload-progress" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Session Upload Progress</title>
<para>
Cuando la opción INI
<link linkend="ini.session.upload-progress.enabled">session.upload_progress.enabled</link>
está habilitada, PHP será capaz de ratrear el progreso de subida de
ficheros individuales que están siendo subidos.
Esta información no es particularmente útil para la petición de subida real
en sí misma, pero durante la subida del archivo, una aplicación puede enviar una petición POST
a un nodo distinto (mediante <acronym>XHR</acronym> por ejemplo) para comprobar el
estado.
</para>
<para>
El progreso de subida estará disponible en la variable superglobal
<varname>$_SESSION</varname> cuando una subida está en progreso y al usar POST con una variable con
el mismo nombre que está establecido
<link linkend="ini.session.upload-progress.name">session.upload_progress.name</link>
INI setting is set to.
When PHP detects such POST requests, it will populate an array in the
<varname>$_SESSION</varname>, where the index is a concatenated value of the
<link linkend="ini.session.upload-progress.prefix">session.upload_progress.prefix</link>
and
<link linkend="ini.session.upload-progress.name">session.upload_progress.name</link>
INI options.
The key is typically retrieved by reading these INI settings, i.e.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$key = ini_get("session.upload_progress.prefix") . ini_get("session.upload-progress.name");
var_dump($_SESSION[$key]);
?>
]]>
</programlisting>
</informalexample>
</para>
<para>
It is also possible to <emphasis>cancel</emphasis> the currently in-progress file
upload, by setting the <literal>$_SESSION[$key]["cancel_upload"]</literal> key to
&true;.
When uploading multiple files in the same request, this will only cancel the
currently in-progress file upload, and pending file uploads, but will not
remove successfully completed uploads.
When a upload is cancelled like this, the <literal>error</literal> key in
<varname>$_FILES</varname> array will be set to
<constant>UPLOAD_ERR_EXTENSION</constant>.
</para>
<para>
The
<link linkend="ini.session.upload-progress.freq">session.upload_progress.freq</link>
and
<link linkend="ini.session.upload-progress.min-freq">session.upload_progress.min_freq</link>
INI options control how frequent the upload progress information should be
recalculated.
With a reasonable amount for these two settings, the overhead of this
feature is almost non-existing
</para>
<para>
<example>
<title>Example information</title>
<para>
Example of the structure of progress upload array.
</para>
<programlisting role="html" xml:id="session.upload-progress.example-form">
<![CDATA[
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
<input type="file" name="file1" />
<input type="file" name="file2" />
<input type="submit" />
</form>
]]>
</programlisting>
<para>
The data stored in the session will look like this:
</para>
<programlisting role="php" xml:id="session.upload-progress.example-array">
<![CDATA[
<?php
$_SESSION["upload_progress_123"] = array(
"start_time" => 1234567890, // The request time
"content_length" => 57343257, // POST content length
"bytes_processed" => 453489, // Amount of bytes received and processed
"done" => false, // true when the POST handler has finished, successfully or not
"files" => array(
0 => array(
"field_name" => "file1", // Name of the <input/> field
// The following 3 elements equals those in $_FILES
"name" => "foo.avi",
"tmp_name" => "/tmp/phpxxxxxx",
"error" => 0,
"done" => true, // True when the POST handler has finished handling this file
"start_time" => 1234567890, // When this file has started to be processed
"bytes_processed" => 57343250, // Amount of bytes received and processed for this file
),
// An other file, not finished uploading, in the same request
1 => array(
"field_name" => "file2",
"name" => "bar.avi",
"tmp_name" => NULL,
"error" => 0,
"done" => false,
"start_time" => 1234567899,
"bytes_processed" => 54554,
),
)
);
]]>
</programlisting>
</example>
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->