这是我用来上传带有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);
当然,我不希望任何人直接为我编写代码,只是帮助和指导!:)在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);
在PHP中,你可以不指定数组的索引来追加数组。
例如,看这个循环:
for ($i = 0; $i < 100; $i++)
{
$a[] = "file$i";
}
每次循环执行时,数组$a
将包含一个新元素,如file1
, file2
, file3
…
希望有帮助!
$ rand_file_names =数组();
$rand_file_names[] = $rand_file_name;
我不建议将$rand_file_names存储为数据库中的array(812532,246546)
。如果这就是你正在寻找的,你应该尝试serialize。