-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的」'在你的表格。 –