-1
所以我有一个表单,我用来注册用户。然后我有一个图像字段,使用resize类,将图像存储在文件夹中,并将名称保存在数据库中。我有两个问题:图像上传不能在表单上工作
图像未被调整大小并放在文件夹中,代码只存储图像名称,而不是扩展名,它也应该存储扩展名。
因此,这里是我的代码:
try {
$myValidation = new classes_ValidateForm ('registerUser', $_POST);
$validationResult = $myValidation->getStatus();
if (!is_array($validationResult)) {
$arqName = $_FILES['arquivo']['name'];
$arqTemp = $_FILES['arquivo']['tmp_name'];
$pasta = 'img/';
//extensao do arquivo enviado
$extensaoTemp = explode('.',$arqName);
$extensao = strtolower(end($extensaoTemp));
//nome do arquivo TimesTamp
$nome = time(). '.' . $extensao;
$upload = move_uploaded_file($arqTemp, $pasta . $nome);
if ($upload === true)
{
$ficheiro = $pasta.$nome;
$resizeObj = new resize($ficheiro);
$resizeObj -> resizeImage(1600, 1200, 'auto');
$resizeObj -> saveImage("img/$nome", 100);
$resizethumb = new resize($ficheiro);
$resizethumb -> resizeImage(200, 125, 'crop');
$resizethumb -> saveImage("img/thumbnails/$nome", 100);
}
$myUser = new classes_User ($_POST, 'newUser');
$myUserManager = new classes_UserManager($myControlPanel);
$userResult = $myUserManager->addUser($myUser, $_POST['password'], $nome);
echo $userResult;
die();
}
}
这里是添加用户的功能:使用这个调整大小类
public function addUser($myUser, $password, $image) {
if (!is_a ($myUser, 'classes_User')) {
throw new InvalidArgumentException('Invalid Object');
}
// 1 Get Username and email
$username = $myUser->getUsername();
$email = $myUser->getEmail();
$query = "SELECT * FROM users WHERE username='$username' OR email='$email'";
$myDb = $this->_controlPanel->getMyDb();
$result = $myDb->performQuery($query);
if ($result == "Query Error") {
return ("ERROR ADDING USER");
}
elseif ($result->num_rows==1) {
return (false);
}
else {
$name = $myUser->getName();
$encpassword = md5($password);
$idtype = $myUser->getUserType();
$query = "INSERT INTO users (name, username, email, password, id_type, image) VALUES ('$name', '$username', '$email', '$encpassword', '$idtype', '$image')";
$result = $myDb->performQuery($query);
if($result != true) {
return ("Error Adding User:Query");
}
else {
echo "<h2> You have been registered. You will be redirected to the login page.</h2>";
header("Refresh:3; url=login.php");
}
}
}
林:
https://gist.github.com/leonelsr/3291939#file-resize-class-php
什么我在这里做错了吗?它将$ nome存储在数据库中,但不包括照片的扩展名。图像也不存储在文件夹中。
确保您使用'ENCTYPE = “的multipart/form-data的”'在你的表格。 –