2017-03-22 23 views
0

我有这种形式,需要文本输入,在它下面,你可以上传图像,最多四个(但它的可选,你可以选择不上传图像)。 然后将文本和图像或图像分配给数据库中当前登录的用户。 但是我有一个挑战,当我使用所有可用的图像上传输入时,它会成功上传并分配到数据库。 但是,当我上传少于4,1,2或3,没有反应。请帮助检查我的代码如下。我在图像上传的问题在php

<?php 
include("ot_includes/session.php"); 

include ('ot_includes/profile_info_fetcher.php'); 
include ('ot_includes/header.php'); 

include ('ot_includes/db_connect.php'); 
include("ot_includes/forum_profile_header.php"); 




// Begining of news for m processor 



$current_time= time(); 
$last_create_time_diff=($current_time - $get_last_create_time); 

if (isset 
    ($_POST["submit_topic"]) AND 

    !empty($_POST["topic_title"]) AND 

    !empty($_POST["topic_body"]) AND 

    !empty($_POST["topic_category"]) 
    AND 

    ($last_create_time_diff > 1800) 


    AND 

    (strlen($_POST["topic_title"]) < 101) 
) 
{ 

    $topic_create_time= time(); 
    $topic_title= $_POST['topic_title'] ; 
    $topic_body= $_POST['topic_body'] ; 
    $topic_category= $_POST['topic_category'] ; 


//upload image 



// if(!isset($_SESSION['login_user'])){ 
//  echo('<script> window.location = "../index.php";</script>'); 

// } 


    if(isset($_FILES['upload_thread_image1'])){ 
     $errors= array(); 
     //for first image 
     $file_name_1 = $_FILES['upload_thread_image1']['name']; 
     $file_size_1 =$_FILES['upload_thread_image1']['size']; 
     $file_tmp_1 =$_FILES['upload_thread_image1']['tmp_name']; 
     $file_type_1=$_FILES['upload_thread_image1']['type']; 
     $file_explode_1=explode('.',$_FILES['upload_thread_image1']['name']); 
     $file_ext_1=strtolower(end($file_explode_1)); 


     //for second image 
     $file_name_2 = $_FILES['upload_thread_image2']['name']; 
     $file_size_2 =$_FILES['upload_thread_image2']['size']; 
     $file_tmp_2 =$_FILES['upload_thread_image2']['tmp_name']; 
     $file_type_2=$_FILES['upload_thread_image2']['type']; 
     $file_explode_2=explode('.',$_FILES['upload_thread_image2']['name']); 
     $file_ext_2=strtolower(end($file_explode_2)); 


    //for third image 
     $file_name_3 = $_FILES['upload_thread_image3']['name']; 
     $file_size_3 =$_FILES['upload_thread_image3']['size']; 
     $file_tmp_3 =$_FILES['upload_thread_image3']['tmp_name']; 
     $file_type_3=$_FILES['upload_thread_image3']['type']; 
     $file_explode_3=explode('.',$_FILES['upload_thread_image3']['name']); 
     $file_ext_3=strtolower(end($file_explode_3)); 


     //for fourth image 
     $file_name_4 = $_FILES['upload_thread_image4']['name']; 
     $file_size_4 =$_FILES['upload_thread_image4']['size']; 
     $file_tmp_4 =$_FILES['upload_thread_image4']['tmp_name']; 
     $file_type_4=$_FILES['upload_thread_image4']['type']; 
     $file_explode_4=explode('.',$_FILES['upload_thread_image4']['name']); 
     $file_ext_4=strtolower(end($file_explode_4)); 




     $current_time=time(); 
     $expensions= array("jpeg","jpg","png"); 

     if( 

     (in_array($file_ext_1,$expensions) === false) OR 
     (in_array($file_ext_2,$expensions) === false) OR 
     (in_array($file_ext_3,$expensions) === false) OR 
     (in_array($file_ext_4,$expensions) === false) 

     ) 

     { 
     $errors[]="extension not allowed, please choose a JPEG or PNG file."; 
     } 

     if(
     ($file_size_1 > 2000000) OR 
     ($file_size_2 > 2000000) OR 
     ($file_size_3 > 2000000) OR 
     ($file_size_4 > 2000000) 
     ){ 
     $errors[]='File size must not exceed 2 MB'; 
     } 


     if(empty($errors)==true){ 
     $current_time=time(); 
     $file_name_1=$current_time.$get_username.$file_name_1; 
     $file_name_2=$current_time.$get_username.$file_name_2; 
     $file_name_3=$current_time.$get_username.$file_name_3; 
     $file_name_4=$current_time.$get_username.$file_name_4; 

     // $file_name=$file_name.$current_time; 
     // $insert_profile_pic= mysqli_query($db_connect," oton_users SET user_profile_pic='$file_name' WHERE user_name='$user_check' "); 


//   echo ' 




// <br> 
// <div class="row" > 


// <h2 align="center" class="alert alert-success"><p><i class="fa fa-5x fa-smile-o"></i></p>Your profile picture has been successfully updated !!!<br> Please click <a href="edit_profile.php"> <u> here</u></a> to go back</h2> 


// </div> 
// <hr> 
// '; 
//  } 


//  else{ 
//   echo ' 




// <br> 
// <div class="row" > 


// <h2 align="center" class="alert alert-danger"><p><i class="fa fa-5x fa-frown-o"></i></p>Sorry there was an error updating your profile picture<br>Please make sure its less than 2MB and its either jpg,jpeg,or png format<br> Please click <a href="edit_profile.php"> <u> here</u></a> to go back</h2> 


// </div> 
// <hr> 
// '; 
//  } 




move_uploaded_file($file_tmp_1,"ot_imgs/ot_thread_imgs/".$file_name_1); 

    move_uploaded_file($file_tmp_2,"ot_imgs/ot_thread_imgs/".$file_name_2); 
    move_uploaded_file($file_tmp_3,"ot_imgs/ot_thread_imgs/".$file_name_3); 
    move_uploaded_file($file_tmp_4,"ot_imgs/ot_thread_imgs/".$file_name_4); 





if (empty($file_name_1) OR empty($file_name_2) or empty($file_name_3) or empty($file_name_4)) { 


$file_name_1=" " ; 
$file_name_2=" " ; 
$file_name_3=" " ; 
$file_name_4=" " ; 
} 


    $insert_topic= "INSERT INTO oton_topics (topic_title,topic_body,topic_category,topic_create_time,topic_by,topic_image_1,topic_image_2,topic_image_3,topic_image_4) VALUES ('$topic_title','$topic_body','$topic_category','$topic_create_time','$get_username','$file_name_1','$file_name_2','$file_name_3','$file_name_4')"; 
    $topic_result=mysqli_query($db_connect,$insert_topic); 

    $update_last_create_time=mysqli_query($db_connect,"UPDATE oton_users SET user_last_create_time='$topic_create_time' WHERE user_id='$get_user_id' "); 




if ($topic_result AND $update_last_create_time) { 

    $topic_report= '<div class="alert alert-success" align="center"><i class="fa fa-2x fa-check-circle"></i> Your topic has been posted !!.View your posts <a href ="view_thread.php?latest_post=1 "><u>here</u></a> </div>'; 




} 

    } //from image conditions 
}//from image conditions 


} 



elseif (isset 
    ($_POST["submit_topic"]) OR 

    ($_POST["topic_title"] == " ") OR 

    ($_POST["topic_body"] == " ") OR 

    ($_POST["topic_category"] ==" ") 
    AND 

    ($last_create_time_diff < 1800) 


    AND !$topic_result 
) 
{ 


    $topic_report="<div class='alert alert-danger'><i class='fa fa-2x fa-warning'></i> There was an error,check the following<br>-Make sure no field is empty.<br>-You have to wait for 30 minutes from the last time you posted<br>-Make sure your title is less than or equal to 100 characters including spaces<br>-Kindly close this tab completely and create a topic in a new tab</div>"; 

} 

//End of news form processor 

unset($_POST); 


?> 


<!--Begin welcome section --> 
<section class="container"> 
     <div class="row"> 
      <div class="col-sm-12" align="center"> 
       <h2>Hello <?php echo "$get_username"; ?>!</h2> 
       <p>What would you like to do at the moment ?</p> 

       <?php echo "$quick_links"; ?> 



      </div> 


      </div> 
      </section> 

<hr> 




<section class="container"> 

<?php echo $topic_report ;?> 

<h1 class="page-header"><i class="fa fa-2x fa-plus"></i> Add New Topic</h1><br> 


    <form method="POST" action="" enctype="multipart/form-data"> 
<br> 
<div class="row" > 


<div class='col-sm-offset-1 col-sm-10 '> 


      <div class='form-group'> 



     <label>Title</label> 

<input class="form-control" align="center" type="text" name="topic_title" /> 
<br> 

     <label>Category</label> 
<select class="form-control" name="topic_category"> 
         <option value=" ">Select...</option> 
         <option value="sports">Sports</option> 
         <option value="another">another</option> 
         <option value="another2">another2</option> 
         <option value="another3">another3</option> 



         </select> 

<label>Body</label> 
<textarea id="tinymyceArea" class="form-control" type="text" name="topic_body" ></textarea> 


<br> 
<input type="file" name="upload_thread_image1" class="btn btn-danger" /> 
<input type="file" name="upload_thread_image2" class="btn btn-danger" /> 
<input type="file" name="upload_thread_image3" class="btn btn-danger" /> 
<input type="file" name="upload_thread_image4" class="btn btn-danger" /> 
<br> 

<input class="form-control btn btn-danger btn-block" type="submit" name="submit_topic" value="Post Topic" /> 
    <br> 



    </div> 
     </div> 
</div> 


</form> 

</section> 




<?php include ('ot_includes/footer.php'); ?> 
+1

这就是你希望我们给调试了你很多的代码。更具体地说“没有任何反应”。当然*会发生一些事情。什么?有错误吗?意外的结果?你检查了PHP错误日志吗?打开页面上的错误报告?检查数据库查询是否有错误?当*你*调试这个,特别是它失败的地方? – David

+0

@David它的很多代码,但错误很容易找到,不需要在这里更具体。你检查:if(isset($ _ FILES ['upload_thread_image1'])){'然后你为image1,2,3和4分配所有的值。另外移动上传文件的一部分...如果图像已发布或检查是否存在if ...条件...如果没有,请不要执行'move_upload_file' ..现在您正尝试上传文件不存在,什么会导致错误。 – Twinfriends

+0

@Twinfriends感谢您的解决方案!我将每个文件上传和move_upload_file直接分别放在每个文件上 – Donald3d

回答

0

当你检查,如果文件名是空的,如果file_name_2是空的,那么你要重命名的所有文件““(空)

if (empty($file_name_1) OR empty($file_name_2) or empty($file_name_3) or empty($file_name_4)) { 
    $file_name_1=" " ; 
    $file_name_2=" " ; 
    $file_name_3=" " ; 
    $file_name_4=" " ; 
} 

您应该单独检查,如果名称为空,并重新命名只有那些文件名。

if (empty($file_name_1)) $file_name_1=" " ; 
if (empty($file_name_2)) $file_name_2=" " ; 
if (empty($file_name_3)) $file_name_3=" " ; 
if (empty($file_name_4)) $file_name_4=" " ; 
0

谢谢大家,我已经解决了它,因为任何人在这里可能有类似的问题是处理上传的代码。

if(isset($_FILES['upload_thread_image1'])){ 
     $errors= array(); 
     //for first image 
     $file_name_1 = $_FILES['upload_thread_image1']['name']; 
     $file_size_1 =$_FILES['upload_thread_image1']['size']; 
     $file_tmp_1 =$_FILES['upload_thread_image1']['tmp_name']; 
     $file_type_1=$_FILES['upload_thread_image1']['type']; 
     $file_explode_1=explode('.',$_FILES['upload_thread_image1']['name']); 
     $file_ext_1=strtolower(end($file_explode_1)); 




     $current_time=time(); 
     $expensions= array("jpeg","jpg","png"); 

     if( 

     (in_array($file_ext_1,$expensions) === false) 

     ) 

     { 
     $errors[]="extension not allowed, please choose a JPEG or PNG file."; 
     } 

     if(
     $file_size_1 > 2000000 

     ){ 
     $errors[]='File size must not exceed 2 MB'; 
     } 


     if(empty($errors)==true){ 
     $current_time=time(); 
     $file_name_1=$current_time.$get_username.$file_name_1; 

} 



move_uploaded_file($file_tmp_1,"ot_imgs/ot_thread_imgs/".$file_name_1); 
} 






if(isset($_FILES['upload_thread_image2'])){ 
     $errors= array(); 
     //for second image 
     $file_name_2 = $_FILES['upload_thread_image2']['name']; 
     $file_size_2 =$_FILES['upload_thread_image2']['size']; 
     $file_tmp_2 =$_FILES['upload_thread_image2']['tmp_name']; 
     $file_type_2=$_FILES['upload_thread_image2']['type']; 
     $file_explode_2=explode('.',$_FILES['upload_thread_image2']['name']); 
     $file_ext_2=strtolower(end($file_explode_2)); 





     $current_time=time(); 
     $expensions= array("jpeg","jpg","png"); 

     if( 

     (in_array($file_ext_2,$expensions) === false) 

     ) 

     { 
     $errors[]="extension not allowed, please choose a JPEG or PNG file."; 
     } 

     if(
     $file_size_2 > 2000000 

     ){ 
     $errors[]='File size must not exceed 2 MB'; 
     } 


     if(empty($errors)==true){ 
     $current_time=time(); 
     $file_name_2=$current_time.$get_username.$file_name_2; 




     } 



     move_uploaded_file($file_tmp_2,"ot_imgs/ot_thread_imgs/".$file_name_2); 
}//End for image 2 





if(isset($_FILES['upload_thread_image3'])){ 
     $errors= array(); 

    //for third image 
     $file_name_3 = $_FILES['upload_thread_image3']['name']; 
     $file_size_3 =$_FILES['upload_thread_image3']['size']; 
     $file_tmp_3 =$_FILES['upload_thread_image3']['tmp_name']; 
     $file_type_3=$_FILES['upload_thread_image3']['type']; 
     $file_explode_3=explode('.',$_FILES['upload_thread_image3']['name']); 
     $file_ext_3=strtolower(end($file_explode_3)); 









     $current_time=time(); 
     $expensions= array("jpeg","jpg","png"); 

     if( 

     (in_array($file_ext_3,$expensions) === false) 

     ) 

     { 
     $errors[]="extension not allowed, please choose a JPEG or PNG file."; 
     } 

     if(
     $file_size_3 > 2000000 

     ){ 
     $errors[]='File size must not exceed 2 MB'; 
     } 


     if(empty($errors)==true){ 
     $current_time=time(); 
     $file_name_3=$current_time.$get_username.$file_name_3; 
} 

move_uploaded_file($file_tmp_3,"ot_imgs/ot_thread_imgs/".$file_name_3); 

}//End for Image 3 


if(isset($_FILES['upload_thread_image4'])){ 
     $errors= array(); 

     //for fourth image 
     $file_name_4 = $_FILES['upload_thread_image4']['name']; 
     $file_size_4 =$_FILES['upload_thread_image4']['size']; 
     $file_tmp_4 =$_FILES['upload_thread_image4']['tmp_name']; 
     $file_type_4=$_FILES['upload_thread_image4']['type']; 
     $file_explode_4=explode('.',$_FILES['upload_thread_image4']['name']); 
     $file_ext_4=strtolower(end($file_explode_4)); 






$current_time=time(); 
     $expensions= array("jpeg","jpg","png"); 

     if( 

     (in_array($file_ext_4,$expensions) === false) 

     ) 

     { 
     $errors[]="extension not allowed, please choose a JPEG or PNG file."; 
     } 

     if(
     $file_size_4 > 2000000 

     ){ 
     $errors[]='File size must not exceed 2 MB'; 
     } 


     if(empty($errors)==true){ 
     $current_time=time(); 
     $file_name_4=$current_time.$get_username.$file_name_4; 
     } 

move_uploaded_file($file_tmp_4,"ot_imgs/ot_thread_imgs/".$file_name_4); 

}//end for image 4 

然后我就输入图像的每个变量作为成所需要的数据库,该数据库FILE_NAME_1 $,$ file_name_2 .......