-1
したがって、私はユーザーを登録するために使用するフォームを持っています。そして、私は画像フィールドを持っている、サイズを変更するクラスを使用して、フォルダに画像を格納し、データベースに名前を保存します。イメージアップロードはフォーム上では動作しません
イメージのサイズが変更されず、フォルダに置かれず、コードには拡張子ではなくイメージ名のみが格納され、拡張子も保存する必要があります。だからここ
は私のコードです:
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" を'使用してください。 –