大家好,
我需要一次性上传多个文件(有多个学生,每个学生一次最多可传送5个文件),传送附件的类是用网上下载的一个不错的upload_class.php,
我发现,所有附件都可以传送成功, 但是我如何区分哪个文件是哪个学生的呢?
我的页面与字段对应如下:

注,代码可能与上面的图中标记有些不完全对应,但意思我想大家能明白.
我的有关处理代码如下:
for ($i = 0; $i < count($_POST["students"]); $i++) {
$sid = $_POST["students"][$i];
$memo = $_POST["memos"][$i];
$photos = "";
$photo = "";//"../upload/NoImage.jpg";
for ($j = 1; $j <= 5; $j++) {
if ($_FILES["file$j"]['name'][$i] != '') {
$file = $_FILES["file$j"];
$upload_path = '../upload';
$allow_type = array('jpg','bmp','png','gif','jpeg');
$max_size = 2048000; //2M
$upload = new upFiles($file, $upload_path, $max_size, $allow_type);
$upload->upload();
$pic = $upload->getSaveFileInfo();
//发现一次性会把所有图片传送,故如此处理
for ($k = 0; $k < count($pic); $k++) {
if ($pic[$k]['savename'] != "") {
$photo = substr($pic[$k]['path'], 2)."/".$pic[$k]['savename'];
$photos .= $photo.";";
}
fun_save_debug($i."__".$j."__".$k."__".$photos);
}
}
}
..................
}
我现在测试时有2个学生,第一个传送3个文件, 第2个传送2个文件,共5个.
对应上面的fun_save_debug($i."__".$j."__".$k."__".$photos); 结果保存如下:
0__1__0__/upload/2016/01/34845100.jpg;
0__1__1__/upload/2016/01/34845100.jpg;/upload/2016/01/35245100.jpg;
0__2__0__/upload/2016/01/34845100.jpg;/upload/2016/01/35245100.jpg;/upload/2016/01/35645100.gif;
0__4__0__/upload/2016/01/34845100.jpg;/upload/2016/01/35245100.jpg;/upload/2016/01/35645100.gif;/upload/2016/01/37645200.gif;
1__3__0__/upload/2016/01/40745400.jpg;
从上可看出,在i=0时,成功传送了4个文件,在i=1时传送了1个.
我使用for ($k = 0;...... 这个循环是因为在每个学生都传送1或2个文件时,发现,第2个学生即i=1时总是没有文件,最后我加了这个循环,发现一次性在i=0时就传送完毕了.
对此,我没法知道如何区分哪个学生应是哪个文件.
谢谢大家, 请大家看一下我的代码哪里改一下.
谢谢
--
修改:darlingpeng FROM 221.204.131.*
FROM 221.204.131.*