我对php相当陌生。我使用以下脚本将多个图像上传到一个目录。脚本运行良好。问题是我不知道如何引用第二个图像,所以我可以将其存储在mysql数据库中。变量$filename
存储数组的图像元素。我想添加第二个图像到列itm_pic_name2
在我的mysql数据库。谁能给我指个正确的方向?
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;
}
}
}
仅仅向数据库中添加一个itm_pic_name2列是不够的。数据库结构包含的不仅仅是文件名。它还包含大小和类型。相反,您应该在数据库中插入多行—每行插入一个文件。每次插入图片时,它都应该返回该文件的fileId。
本质上,您需要的是一个用于表单数据的数据表。这个表有两列。一个用于文件1。一个用于文件2。在该表中,存储每个文件的唯一文件id。然后,使用连接来获取所需的文件信息。我不能确切地为你写出来,因为我不知道你想用这些文件做什么。但是,希望你可以把它作为一个开始并运行它