以下是我用于上传带有HTML5标记的多张照片的代码。
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){
$rand_file_name = rand(1,1000000);
if ($_FILES['files']['type'][$key] == "image/jpeg" || $_FILES['files']['type'][$key] == "image/gif" || $_FILES['files']['type'][$key] == "image/png" || $_FILES['files']['type'][$key] == "image/JPEG" || $_FILES['files']['type'][$key] == "image/GIF" || $_FILES['files']['type'][$key] == "image/PNG") {
if ($_FILES['files']['size'][$key] < 512000){
move_uploaded_file($tmp_name, "../../../assets/users/$user_id/photos/$browser_album_id/$rand_file_name.jpg");
$photo_name = $_FILES['files']['name'][$key];
$photo_name = str_replace(".jpg", "", $photo_name);
$photo_name = str_replace(".png", "", $photo_name);
$photo_name = str_replace(".gif", "", $photo_name);
$insert_database = mysql_query("INSERT INTO photo_album_photos (random_photo_name,belonging_album_id,photo_name) VALUES ('$rand_file_name','$browser_album_id','$photo_name')");
$num_files_added++;
}
}
}
$ num_files_added 将计算添加的文件数量。
我想要实现的是将 $ rand_file_name (s)收集到一个数组中。每个图像都有一个随机名称,因此一个图像可能是812532.jpg,下一个图像可能是246546.jpg。
我想将文件名插入数据库中。所以上面的例子将在一个数组中。例如的阵列(812532,246546);
当然,我不希望任何人直接为我编码,只是帮助和指导! :)
答案 0 :(得分:1)
在foreach
之前,引入变量$file_names = array();
作为空白数组
在foreach循环中,试试这个:
$file_names[] = $rand_file_name;
然后,您可以访问将存储在$file_names
变量中的数组。 :)
将它们变成逗号分隔的字符串
在foreach循环之前引入$file_names = ''
。
然后在循环中,执行以下操作:
$file_names .= $rand_file_name . ',';
关闭foreach循环后,这个:
$file_names = substr($file_names,0,-1);
答案 1 :(得分:0)
在PHP中,您可以通过不指定其索引来附加到数组。
例如,看看这个循环:
for ($i = 0; $i < 100; $i++)
{
$a[] = "file$i";
}
每次循环执行时,数组$a
将包含一个新元素,如file1
,file2
,file3
......
希望有所帮助!
答案 2 :(得分:0)
$ rand_file_names = array();
$ rand_file_names [] = $ rand_file_name;
我不建议将$ rand_file_names存储为数据库array(812532,246546)
。如果这就是您要找的内容,请尝试serialize。