درود دوستان...
من کدی برای ارسال و ثبت عکس در پایگاه داده نوشتم و در کنار پوشه images برای ذخیره عکس ها ایجاد کردم...
تابع move_uploaded_file به کار بردم ولی هیچ عکس العملی نشون نمیده...
جدول پایگاه داده images هستش...
مشکل از کجاست؟
کد زیر:
if(isset($_POST['signup']) && isset($_FILES['image'])){
$errors= array();
$file_name = $_FILES['images']['name'];
$file_size = $_FILES['images']['size'];
$file_tmp = $_FILES['images']['tmp_name'];
$file_type = $_FILES['images']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['images']['name'])));
$extensions= array("jpeg","jpg","png");
if(in_array($file_ext,$extensions)=== false){
$errors[]="extension not allowed, please choose a JPEG or PNG file.";
}
if($file_size > 2097152) {
$errors[]='File size must be excately 2 MB';
}
if(empty($errors)==true) {
move_uploaded_file($file_tmp,"images/".$file_name);
echo "Success";
}else{
print_r($errors);
}
$name=$_POST['name'];
$fname=$_POST['fname'];
$url=$_POST['url'];
$number=$_POST['number'];
$user=$_POST['user'];
$images=$_POST['images'];
$email=$_POST['email'];
$password= md5($_POST['password']);
try {
$sql = "INSERT INTO users(name,fname,url,number,user,images,email,password) VALUES('$name','$fname','$url',$number,'$user','$images','$email','$password')";
$query = $con->prepare($sql);
$query->bindParam(':name',$name,PDO::PARAM_STR);
$query->bindParam(':fname',$fname,PDO::PARAM_STR);
$query->bindParam(':url',$url,PDO::PARAM_STR);
$query->bindParam(':number',$number,PDO::PARAM_STR);
$query->bindParam(':user',$user,PDO::PARAM_STR);
$query->bindParam(':images',$images,PDO::PARAM_STR);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->bindParam(':password',$password,PDO::PARAM_STR);
$query->execute();
if($query->rowCount() == 1){
header('location: profile.php');
}
}catch(PDOException $exception){
echo "Error: " . $exception->getMessage();
}
}
در HTML :
<div class="form-group">
<label for="img">عکس نمایه :</label>
<input type="file" class="form-control-file" id="img" name="image">
</div>
@endworld
من که توی ظاهرش مشکلی نمیبنم
ولی خب مرحله به مرحله چک کنین
مخصوصا ورودی دوم تابع move_uploaded_file که آدرس هست
فکر کنم یکم حساسیت داشته باشه توی نوع آدرس دهی
توی
$target_dir = "uploads/";
قبل از اسم پوشه یه / بذارین یعنی اینجوری :
$target_dir = "/uploads/";
@elyasbeshkani
آره ...
<form method="post" action="signup.php" enctype="multipart/form-data">
اینم یک نمونه دیگر که کار نمی کنه:
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["images"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
if(isset($_POST['signup'])){
$check = getimagesize($_FILES["images"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
$name=$_POST['name'];
$fname=$_POST['fname'];
$url=$_POST['url'];
$number=$_POST['number'];
$user=$_POST['user'];
$images=$_POST['images'];
$email=$_POST['email'];
$password= md5($_POST['password']);
try {
$sql = "INSERT INTO users(name,fname,url,number,user,images,email,password) VALUES('$name','$fname','$url',$number,'$user','$images','$email','$password')";
$query = $con->prepare($sql);
$query->bindParam(':name',$name,PDO::PARAM_STR);
$query->bindParam(':fname',$fname,PDO::PARAM_STR);
$query->bindParam(':url',$url,PDO::PARAM_STR);
$query->bindParam(':number',$number,PDO::PARAM_STR);
$query->bindParam(':user',$user,PDO::PARAM_STR);
$query->bindParam(':images',$images,PDO::PARAM_STR);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->bindParam(':password',$password,PDO::PARAM_STR);
$query->execute();
if($query->rowCount() == 1){
header('location: profile.php');
}
}catch(PDOException $exception){
echo "Error: " . $exception->getMessage();
}
}
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["images"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["images"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["images"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
@endworld
من که توی ظاهرش مشکلی نمیبنم
ولی خب مرحله به مرحله چک کنین
مخصوصا ورودی دوم تابع move_uploaded_file که آدرس هست
فکر کنم یکم حساسیت داشته باشه توی نوع آدرس دهی
توی
$target_dir = "uploads/";
قبل از اسم پوشه یه / بذارین یعنی اینجوری :
$target_dir = "/uploads/";
متوجه نمیشم میشه یکم بهتر و بیشتر توضیح بدی؟
شما فایل رو تو فرم انتخاب میکنی و سابمیتش میکنی
تو مقصد فرم فایلی ارسال میشه اصلا؟
<form method="post" action="signup.php" enctype="multipart/form-data">
<div class="form-group">
<label for="name">نام :</label>
<input type="text" class="form-control" id="name" name="name" required>
</div>
<div class="form-group">
<label for="fname">نام خانوادگی :</label>
<input type="text" class="form-control" id="fname" name="fname" required>
</div>
<div class="form-group">
<label for="url">آدرس سایت :</label>
<input type="text" class="form-control" id="url" name="url" required>
</div>
<div class="form-group">
<label for="number">شماره موبایل :</label>
<input type="text" class="form-control" id="number" name="number" required>
</div>
<div class="form-group">
<label for="inImg">عکس نمایه :</label>
<input type="file" class="form-control-file" id="inImg" name="images" required>
</div>
<div class="form-group">
<label for="username">نام کاربری :</label>
<input type="text" class="form-control" id="username" name="user" required>
</div>
<div class="form-group">
<label for="inEmail">رایانامه :</label>
<input type="email" class="form-control" id="inEmail" name="email" required>
</div>
<div class="form-group">
<label for="inPassword">رمز عبور :</label>
<input type="password" class="form-control" id="inPassword" name="password" required>
</div>
<div class="control-group">
<img src="generatecaptcha.php?rand=<?php echo rand(); ?>" name="captcha_img" id='image_captcha' >
<a href='javascript: refreshing_Captcha();'><i class="icon-refresh icon-large"></i></a>
<script language='JavaScript' type='text/javascript'>
function refreshing_Captcha()
{
var img = document.images['image_captcha'];
img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
}
</script>
</div>
<div class="form-group">
<input id="code" name="code_confirmation" type="text" placeholder="کد امنیتی را وارد نمایید" required>
</div>
<button type="submit" name="signup" class="btn btn-primary">ثبت نام</button>
</form>
واقعا احسنت به این سوالاتی که مطرح میکنین و درد همه ی مردم جامعه در همین سوالات گنجانده شده . من باز هم تشکر میکنم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟