私は自分のウェブサイトのサインアップページを作成しています。ユーザプロフィールの画像を変更する準備が整うまでのデフォルトの。私は配列とnew DirectoryIterator
を使用して画像のファイル名を取得する方法を知っていますが、問題は私もblob
タイプをデータベースにアップロードしたいので、変更したいときはファイル名だけでなく変更することができます。私は PHP - ファイルディレクトリから画像を取得してSQLデータベースにアップロード
file_get_contents();
を使用してみましたが、それは働いていなかったと私は私がやってされたいか、私のファイルディレクトリからファイルを取得し、ファイル名を指定して、それをアップロード Warning: file_get_contents(default-user-profilepic.png): failed to open stream: No such file or directory in C:\wamp64\www\MT\infoupdate.php on line 128
のようなエラーが発生しましたおよびfile_tmpをデータベースに追加します。ここに私のコードは、私はそれを正しく理解していれば、あなたがイメージという名前のフォルダ内の画像のセットを持って
PHP
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] =="POST"){
//Set variables
$fullname = trim($_POST['fullname']);
$username = trim($_POST['username']);
$email = trim($_POST['email']);
$password = trim($_POST['password']);
$storePassword = password_hash($password, PASSWORD_BCRYPT, array('cost' => 10));
$cpassword = trim($_POST['cpassword']);
$boolean = true;
//Check if values are empty
if(!empty($fullname) && !empty($fullname) && !empty($email) && !empty($password) && !empty($cpassword) && !empty($_POST['gender'])){
//Check if email is valid
if(filter_var($email, FILTER_VALIDATE_EMAIL) == false){
die ("Email is Not Valid!");
}
//Check if passwrod is greater 6
if(strlen($password) < 6 && strlen($cpassword) < 6){
die ("Password has to be GREATER than 6 characters!");
}
//Check if password has atleast ONE Uppercase, One Lowercase and a number
if(!preg_match("(^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$)",$password)){
echo 'Password needs to be at least ONE uppercase, ONE lowercase, and a number!';
exit;
}
//Check if passwords match
if(!password_verify($cpassword, $storePassword)){
die ("Passwords DO NOT Match!");
}
try{
// new php data object
$handler = new PDO('mysql:host=127.0.0.1;dbname=magicsever', 'root', '');
//ATTR_ERRMODE set to exception
$handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
die("There was an error connecting to the database");
}
//Check if username is in DB
$stmtUsername = $handler->prepare("SELECT * FROM generalusersdata WHERE username = :username LIMIT 1");
$stmtUsername->execute(array(':username'=>$username));
if($resultUsername = $stmtUsername->fetch()){
die("Username is already in user! Please try a different one!");
}
$userid = $resultUsername['user_id'];
//Check if EMAIL is in DB
$stmtEmail = $handler->prepare("SELECT * FROM generalusersdata WHERE email = :email LIMIT 1");
$stmtEmail->execute(array(':email'=>$email));
if($resultEmail = $stmtEmail->fetch()){
die("Email already in use! Please try a different one!");
}
$extensions = array('jpg', 'jpeg', 'png', 'gif', 'bmp');
// init result
// directory to scan
$directory = new DirectoryIterator('images');
// iterate
foreach ($directory as $fileinfo) {
// must be a file
if ($fileinfo->isFile()) {
// file extension
$extension = strtolower(pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION));
// check if extension match
if (in_array($extension, $extensions)) {
// add to result
$file_name = $fileinfo->getFilename();
}
}
}
$isDev = 1;
$gender = $_POST['gender'];
//set up sql
$query = "INSERT INTO generalusersdata(fullname, username, email, password, profile_image, isDev, gender)VALUES(:fullname, :username, :email, :storePassword, :file_name, :isDev, :gender)";
$stmt = $handler->prepare($query);
$stmt->bindParam(':fullname', $fullname, PDO::PARAM_STR);
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':storePassword', $storePassword, PDO::PARAM_STR);
$stmt->bindParam(':file_name', $file_name, PDO::PARAM_STR);
$stmt->bindParam(':isDev', $isDev, PDO::PARAM_STR);
$stmt->bindParam(':gender', $gender, PDO::PARAM_STR);
if(!$stmt->execute()){
$_SESSION['error'] = true;
header("Location: errorsignup.php");
exit;
}
$_SESSION['username'] = $username;
setcookie("username", $username, time() + 60*60*24*365);
header("Location: developerUpload.php");
//Empty else
}else{
echo "Missing Values!";
exit;
}
}
?>
を「それは働いていなかったと私が得た_butあなたの画像フォルダがMITのフォルダ内にある場合、あなたはにあなたのディレクトリイテレータの行を変更しようとすることができますエラーの多く._ "私たちとエラーを共有することができますか? –
申し訳ありませんが、なぜあなたは画像ディレクトリをループしていますか?わかりません。 $ file_nameを設定した後にブレークがないので、最後のファイルには常にエンディングします。 –
そして、それをディスクに保存している間になぜそれをBLOBとして保存するのですか?私にとって奇妙な別の部分。 –