如果文件没有上传,我试图显示错误。我的问题的关键是我的$ status()数组没有返回我在foreach循环中的if语句中追加的值。
有人可以告诉我发生了什么以及我做错了什么吗?我希望foreach循环中的状态值能够追加并返回循环外部。
以下代码。
$status = array();
// Check that file within size restrictions, then upload.
foreach($request->getFiles() as $file)
{
$file_dir = sfConfig::get("sf_data_dir") . '/retail/order/' . $order_id . '/';
if (!is_dir($file_dir))
{
mkdir($file_dir, 0777, true);
}
$maxsize = 332027;
if(($file['size'] >= $maxsize) || ($file['size'] == 0))
{
$status[] = 0;
}
else
{
move_uploaded_file($file['tmp_name'], $file_dir . $file['name']);
$attachment = new Attachment();
$attachment->setName($file['name']);
$attachment->setPath($file_dir);
$attachment->setSize($file['size']);
$attachment->setCreatedTs('now');
$attachment->save();
$app_attachment = new ApendedAttachment();
$app_attachment->setAttachmentId($attachment->getAttachmentId());
$app_attachment->setWebOrderId($order_id);
$app_attachment->setCreatedTs('now');
$app_attachment->save();
$status[] = 1;
}
}
if (in_array(1, $status))
{
$this->getUser()->setFlash('success', 'Thank you. Your cart has been saved.');
}
else
{
$this->getUser()->setFlash('error', 'Please upload files less than 20MB.');
}
$this->redirect('order/detail?id=' . $order->getWebOrderId());
答案 0 :(得分:0)
您没有正确地为状态数组分配值。您可能希望在浏览文件数组时增加索引:
$i = 0;
for each(){
...
$status[$i] = 1;
...
$i++;
}
对于错误的代码格式感到抱歉。在我的移动设备上执行此操作。