我对php很新。我正在使用以下脚本将多个图像上载到目录。该脚本工作正常。我遇到的问题是我不知道如何引用第二个图像,所以我可以将它存储在一个mysql数据库中。变量$filename
存储数组的图像元素。
我想将第二个图像添加到我的mysql数据库中的列itm_pic_name2
。请有人指出我正确的方向。
public function move($overwrite = false)
{
$field = current($this->_uploaded);
if (is_array($field['name'])) {
foreach ($field['name'] as $number => $filename) {
print_r($field);
//process the multiple upload
$this->_renamed = false;
$this->processFile($filename, $field['error'][$number], $field['size'][$number], $field['type'][$number], $field['tmp_name'][$number], $overwrite);
}
} else {
$this->processFile($field['name'], $field['error'],
$field['size'], $field['type'], $field['tmp_name'], $overwrite);
}
}
protected function processFile($filename, $error, $size, $type, $tmp_name, $overwrite)
{
$OK = $this->checkError($filename, $error);
if ($OK) {
$sizeOK = $this->checkSize($filename, $size);
$typeOK = $this->checkType($filename, $type);
if ($sizeOK && $typeOK) {
$name = $this->checkName($filename, $overwrite);
echo $filename;
echo $type;
echo $size;
$success = move_uploaded_file($tmp_name, $this->_destination . $name);
if ($success) {
//add the amended filename to the array of filenames
$this->_filenames[] = $name;
$this->execSQL("INSERT INTO itm_pic_detail(itm_pic_name, itm_pic_name2,itm_pic_type, itm_pic_size) VALUES (?,?,?)",
array('ssss', $filename, $not_sure_how_to_refence_this_image, $type, $size), true);
$message = "$filename uploaded successfully";
}
if ($this->_renamed) {
$message .= " and renamed $name";
}
$this->_messages[] = $message;
} else {
$this->_messages[] = 'Could not upload ' . $filename;
}
}
}
答案 0 :(得分:0)
将单个itm_pic_name2列添加到数据库是不够的。数据库结构不仅包含文件名。它还包含大小和类型。相反,您应该在数据库中插入多行 - 每行一个文件。每次插入图片时,都应该返回文件的fileId。
基本上,您需要的是表单数据的数据表。该表有两列。一个用于文件1.一个用于文件2.在该表中,存储每个文件的唯一文件ID。然后,使用联接来获取所需的文件信息。
我不能完全为你写出来,因为我没有任何关于你要对这些文件做什么的背景知识。但是,希望你可以把它作为一个开始并与它一起运行。