我正在尝试从数组中拆分图像名称。
$this->_filenames[]= array($name);
$files = explode(",", $name);
当我在var_dump
上执行$files
时,它会返回存储在数组中的两个图像,如下所示:
array
0 => string 'felton300.jpg' (length=13)
1
array
0 => string 'felton400.jpg' (length=13)
1
如果我尝试使用list()
在数组中存储每个元素(使用下面的代码),我会收到错误。
list($img1,$img2) = $files;
错误是:Undefined offset: 1
我正在从表单上传图像,并希望使用变量(即$ img1)作为插入到mysql数据库的引用。这是我上传图片的代码。
public function move($overwrite = false) {
$field = current($this->_uploaded);
if(is_array($field['name'])){
foreach($field['name'] as $number => $filename){
//处理多重上传
$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);
$success = move_uploaded_file($tmp_name, $this->_destination . $name);
if ($success) {
//将修改后的文件名添加到文件名数组
$this->_filenames[]= array($name);
//拆分数组* ** 这就是我想要拆分阵列的地方所以我可以在MYSQL表中存储图像。表将有3列ID,image1,image2 * ** * **
$files = explode(",", $name);
var_dump($files);
答案 0 :(得分:0)
如果阵列中有两个图像,为什么不
INSERT INTO table (id, image1, image2) VALUES ({$id}, '{$files[0]}', '{$files[1]}')
为什么要分手呢?
从这个看起来
array
0 => string 'felton300.jpg' (length=13)
1
array
0 => string 'felton400.jpg' (length=13)
1
这里有一个多维数组(注意每个都有一个0的键)。很难说你提供了什么,但
INSERT INTO table (id, image1, image2) VALUES ({$id}, '{$files[0][0]}', '{$files[0][1]}')
也可能是您的解决方案。