-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathmove-uploaded-file.xml
150 lines (144 loc) · 4.42 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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: jpauli Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.move-uploaded-file" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>move_uploaded_file</refname>
<refpurpose>Déplace un fichier téléchargé</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>move_uploaded_file</methodname>
<methodparam><type>string</type><parameter>from</parameter></methodparam>
<methodparam><type>string</type><parameter>to</parameter></methodparam>
</methodsynopsis>
<para>
S'assure que le fichier <parameter>from</parameter> est un fichier
téléchargé par HTTP POST. Si le fichier est valide, il est déplacé
jusqu'à <parameter>to</parameter>.
</para>
<para>
Ce type de vérification est spécialement important s'il
est possible que les fichiers téléchargés
révèlent leur contenu à l'utilisateur,
ou même aux utilisateurs du même système.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>from</parameter></term>
<listitem>
<para>
Le nom du fichier téléchargé.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>to</parameter></term>
<listitem>
<para>
La destination du fichier déplacé.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne &true; en cas de succès.
</para>
<para>
Si <parameter>from</parameter> n'est pas valide, rien ne se passe,
et <function>move_uploaded_file</function> retournera &false;.
</para>
<para>
Si <parameter>from</parameter> est un fichier téléchargé,
mais que pour une raison quelconque, il ne peut être déplacé,
rien ne se passe, et <function>move_uploaded_file</function>
retourne &false;. De plus, une alerte sera affichée.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Téléchargement de plusieurs fichiers</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() peut empêcher les attaques de système de fichiers;
// la validation/assainissement supplémentaire du nom de fichier peut être approprié
$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> n'est pas affectée par
l'<link linkend="ini.open-basedir">open_basedir</link>.
Cependant, les restrictions sont placées uniquement sur le
paramètre <parameter>to</parameter> qui permet le
déplacement des fichiers chargés dans lesquels
<parameter>from</parameter> peut entrer en conflit avec ces
restrictions. <function>move_uploaded_file</function> permet de
s'assurer de la sécurité de cette opération en autorisant le
déplacement des seuls fichiers chargés via PHP.
</para>
</note>
<warning>
<para>
Si le fichier de destination existe déjà, il sera écrasé.
</para>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>is_uploaded_file</function></member>
<member><function>rename</function></member>
<member>Voir la section sur <link linkend="features.file-upload">les
téléchargements de fichiers</link> pour un exemple d'utilisation</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
-->