【发布时间】:2014-06-25 18:27:36
【问题描述】:
所以我正在为我正在从事的项目的这段代码苦苦挣扎。我不明白为什么在使用下面的 Move_uploaded_file 函数时会出现数组到字符串的转换错误,因为我实现了一个 foreach 循环来仅处理数组中的每个单独元素。另请注意,根据 php 的错误处理,该问题专门与 move_uploaded_file 函数有关,而不是与被调用的其他方法有关。
这是相关代码。 (感谢大家的帮助)。
public function relocate () {
foreach ($this->getFilename() as $name) {
$validate = $this->validatePhoto($name);
$size = $this->getSize($name);
if ($validate && $size) {
if (move_uploaded_file($name, $this->filepath . $this->getFilename())) {
echo "<p> upload complete </p>";
//rename file, redirect header, etc.
} //end if move_uploaded_file
else {
echo "<p> something's up. </p>";
}//end else
}//end if validate && size
}//end foreach
}//end relocate method
【问题讨论】:
-
$this->getFilename()返回一个数组。您正在循环,为什么还要尝试将数组添加到字符串中?$this->filepath.$name -
你在 foreach 中使用了
$this->getFilename()both(作为一个数组),and 在move_uploaded_file函数中使用了(作为一个字符串) -
因为
$this->getFilename()正在返回一个数组(你首先要迭代的那个),但是你试图假装它不是你的move_uploaded_file()中的一个数组。 ...为什么不if (move_uploaded_file($name, $this->filepath . $name)) { -
哇,我没有意识到这一点。我在想我的循环方式有问题。我的愚蠢错误,谢谢大家!
标签: php arrays oop foreach upload