SB2*_*055 1 php file-upload file
我目前正在使用以下格式成功上传单个文件:
<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
并使用以下脚本:
<?php
error_reporting(E_ALL);
if (($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
$moved = move_uploaded_file($_FILES["file"]["tmp_name"], "C:/inetpub/wwwroot/PHP_Ramp/upload/" . $_FILES["file"]["name"]);
if ($moved) {
echo "Move: Success <br/>";
}
else {
echo "Move Failed <br/>";
}
echo "Stored in: " . "C:/inetpub/wwwroot/PHP_Ramp/upload/" . $_FILES["file"]["name"];
}
}
else
{
echo "Invalid file";
}
?>
Run Code Online (Sandbox Code Playgroud)
我现在正试图让用户从表单中选择三个不同的文件.我找到了一些指南,展示了如何做类似的事情,但我无法让它发挥作用.
我修改了表格如下(包括三个输入):
<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="file" name="file" id="file" />
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但我不知道如何修改php来处理所有三个文件.我知道我需要遍历_FILES,但我尝试过的一切都无法正常工作.任何指针将不胜感激.
每个文件元素必须具有唯一的名称,或者使用PHP的数组简写:
<input type="file" name="file1" />
<input type="file" name="file2" />
Run Code Online (Sandbox Code Playgroud)
要么
<input type="file" name="file[]" />
<input type="file" name="file[]" />
Run Code Online (Sandbox Code Playgroud)
请记住 - 该name属性定义了如何在服务器上标识该字段,如果多次使用相同的名称,PHP将在解析提交的数据时用最新的副本覆盖以前的副本.数组表示法([])告诉PHP你想要多个具有相同名称的字段,并且它找到的每个副本都应该添加到一个数组中,而不是被覆盖.
对于唯一名称版本,您可以使用单个文件处理每个版本.
对于阵列版本,PHP具有设计愚蠢,需要稍微不同的处理.最终得到一个看起来像$ _FILES的数组
$_FILES = array(
'fieldname' => array(
'name' => array(
0 => 'first file',
1 => 'second file',
etc...
)
)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9836 次 |
| 最近记录: |