嗨,我正在尝试创建一个脚本来上传多个文件。到目前为止,一切都正常,所有文件都在上传中。
我现在的问题是,我需要抓取上传文件的每个文件名,以便可以将它们插入到数据库中。
下面是我的html:
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="image[]" multiple />
<input type="submit" value="upload" />
下面是php:
if (!empty($_FILES['image'])) {
$files = $_FILES['image'];
for($x = 0; $x < count($files['name']); $x++) {
$name = $files['name'][$x];
$tmp_name = $files['tmp_name'][$x];
$size = $files['size'][$x];
if (move_uploaded_file($tmp_name, "../folder/" .$name)) {
echo $name, ' <progress id="bar" value="100" max="100"> </progress> done <br />';
}
}
}
真希望有人能帮我解决这个问题。/JL
发布于 2013-04-18 15:26:09
谢谢你的帮助,我通过简单地创建变量就让它工作了:
$image_1 = (print_r($files['name'][0], true));
$image_2 = (print_r($files['name'][1], true));
$image_3 = (print_r($files['name'][2], true));
发布于 2013-04-18 04:46:11
您的索引是反向的。$_FILES
是一个数组,每个上传的文件都有一个元素。这些元素中的每一个都是一个关联数组,包含该文件的信息。所以count($files['name'])
应该是count($files)
,$files['name'][$x]
应该是$files[$x]['name']
(对于其他属性也是类似的。您还可以使用foreach
循环:
foreach ($_FILES as $file) {
$name = basename($file['name']);
$tmp_name = $file['tmp_name'];
$size = $file['size'];
if (move_uploaded_file($tmp_name, "../folder/" .$name)) {
echo $name, ' <progress id="bar" value="100" max="100"> </progress> done <br />';
}
}
发布于 2013-04-18 04:54:03
我认为glob()
函数可以提供帮助:
<?php
foreach(glob("*.jpg") as $picture)
{
echo $picture.'<br />';
}
?>
演示结果:
pic1.jpg
pic2.jpg
pic3.jpg
pic4.jpg
...
请确保在必要时更改文件路径和扩展名。
https://stackoverflow.com/questions/16069837
复制相似问题