-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathmove-uploaded-file.xml
153 lines (146 loc) · 4.61 KB
/
move-uploaded-file.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.move-uploaded-file">
<refnamediv>
<refname>move_uploaded_file</refname>
<refpurpose>Mueve un archivo subido a una nueva ubicación</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>move_uploaded_file</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
<methodparam><type>string</type><parameter>destination</parameter></methodparam>
</methodsynopsis>
<para>
Esta función intenta asegurarse de que el archivo designado por
<parameter>filename</parameter> es un archivo subido válido (lo que significa
que fue subido mediante el mecanismo de subida HTTP POST de PHP). Si
el archivo es válido, será movido al nombre de archivo dado por
<parameter>destination</parameter>.
</para>
<para>
El orden de comprobación es especialmente importante si hay cualquier posibilidad
de que cualquier cosa hecha con los archivos subidos pueda revelar su
contenido al usuario, o incluso a otros usuarios en el mismo
sistema.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
El nombre de archivo del archivo subido.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>destination</parameter></term>
<listitem>
<para>
El destino del archivo movido.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true; en caso de éxito.
</para>
<para>
Si <parameter>filename</parameter> no es un archivo válido subido,
no sucederá ninguna acción, y
<function>move_uploaded_file</function> devolverá
&false;.
</para>
<para>
Si <parameter>filename</parameter> es un archivo subido válido, pero
no puede ser movido por algunas razones, no sucederá ninguna acción, y
<function>move_uploaded_file</function> devolverá
&false;. Adicionalmente, se emitirá un aviso.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Subida de múltiples archivos</title>
<programlisting role="php">
<![CDATA[
<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() puede evitar ataques de denegación de sistema de ficheros;
// podría ser apropiada más validación/saneamiento del nombre del fichero
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
<function>move_uploaded_file</function> es compatible con
<link linkend="ini.open-basedir">open_basedir</link>.
Sin embargo, las restricciones sólo están impuestas para la
ruta <parameter>dest</parameter> para permitir mover
los archivos subidos en los cuales <parameter>filename</parameter> pueda tener
conflictos con tales restricciones. <function>move_uploaded_file</function> garantiza
la seguridad de esta operación permitiendo que sólo aquellos archivos subidos
a través de PHP sean movidos.
</para>
</note>
<warning>
<para>
Si el archivo destino ya existe se sobrescribirá.
</para>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>is_uploaded_file</function></member>
<member><function>rename</function></member>
<member>Véase <link linkend="features.file-upload">Manejo de subidas de archivos</link> para un sencillo ejemplo de uso</member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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
-->