Skip to main content
Inspiring
February 16, 2014
Answered

Error in image file upload using dreamweaver

  • February 16, 2014
  • 1 reply
  • 1939 views

Greeting to you all!

Please I need you PRO help. My case seem similar to some of the ones I have seen but my code is completely different.

I wrote this code below using PHP in Dreamweaver and its used to upload images to MySQl database. Now when I upload about 6 images, it shows File Uploaded Successfully. But if I try to upload any thing below 6 images, it will refuse to upload and will echo Upload Failed.

<?php

if(isset($_POST['submit']))

{

          $projid=$_POST['projid'];

          $projname=$_POST['projname'];

 

          $name=basename($_FILES['file_upload']['name']);

          $t_name=$_FILES['file_upload']['tmp_name'];

          $dir='upload';

          if(move_uploaded_file($t_name,$dir."/".$name))

 

          $nameone=basename($_FILES['file_uploadone']['name']);

          $t_name=$_FILES['file_uploadone']['tmp_name'];

          $dir='upload1';

          if(move_uploaded_file($t_name,$dir."/".$name))

 

          $nametwo=basename($_FILES['file_uploadtwo']['name']);

          $t_name=$_FILES['file_uploadtwo']['tmp_name'];

          $dir='upload2';

 

          if(move_uploaded_file($t_name,$dir."/".$name))

          $namethree=basename($_FILES['file_uploadthree']['name']);

          $t_name=$_FILES['file_uploadthree']['tmp_name'];

          $dir='upload3';

 

          if(move_uploaded_file($t_name,$dir."/".$name))

          $namefour=basename($_FILES['file_uploadfour']['name']);

          $t_name=$_FILES['file_uploadfour']['tmp_name'];

          $dir='upload4';

          if(move_uploaded_file($t_name,$dir."/".$name))

 

          $namefive=basename($_FILES['file_uploadfive']['name']);

          $t_name=$_FILES['file_uploadfive']['tmp_name'];

          $dir='upload5';

          if(move_uploaded_file($t_name,$dir."/".$name))

          {

                    mysql_select_db ($database_ProjMonEva,$ProjMonEva);

                    $qur="insert into tbl_images (imageid, projid, projname, name, path, nameone, pathone, nametwo, pathtwo, namethree, paththree, namefour, pathfour, namefive, pathfive) values ('','$projid','$projname','$name','upload/$name','$nameone','upload/$nameone','$nametwo','upload/$nametwo','$namethree','upload/$namethree','$namefour','upload/$namefour','$namefive','upload/$namefive')";

                    $res=mysql_query($qur,$ProjMonEva);

                    echo 'File uploaded successful';

          }

          else

          {

                    echo 'upload failed!';

          }

}

?>

I see the problem to come from the echo but I am stock and dont know how to correct it. Can any one please help me.

Thank you in advance Mike

This topic has been closed for replies.
Correct answer Prince Mike

Hi Bregent,

Do you mean like this

<?php

if(isset($_POST['submit']))

{

          $projid=$_POST['projid'];

          $projname=$_POST['projname'];

          $name=basename($_FILES['file_upload']['name']);

          $t_name=$_FILES['file_upload']['tmp_name'];

          $dir='upload';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $nameone=basename($_FILES['file_uploadone']['name']);

          $t_name=$_FILES['file_uploadone']['tmp_name'];

          $dir='upload1';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $nametwo=basename($_FILES['file_uploadtwo']['name']);

          $t_name=$_FILES['file_uploadtwo']['tmp_name'];

          $dir='upload2';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $namethree=basename($_FILES['file_uploadthree']['name']);

          $t_name=$_FILES['file_uploadthree']['tmp_name'];

          $dir='upload3';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $namefour=basename($_FILES['file_uploadfour']['name']);

          $t_name=$_FILES['file_uploadfour']['tmp_name'];

          $dir='upload4';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $namefive=basename($_FILES['file_uploadfive']['name']);

          $t_name=$_FILES['file_uploadfive']['tmp_name'];

          $dir='upload5';

          if(move_uploaded_file($t_name,$dir."/".$name))

         

                    mysql_select_db ($database_ProjMonEva,$ProjMonEva);

                    $qur="insert into tbl_images (imageid, projid, projname, name, path, nameone, pathone, nametwo, pathtwo, namethree, paththree, namefour, pathfour, namefive, pathfive) values ('','$projid','$projname','$name','upload/$name','$nameone','upload/$ nameone','$nametwo','upload/$nametwo','$namethree','upload/$namethree' ,'$namefour','upload/$namefour','$namefive','upload/$namefive')";

                    $res=mysql_query($qur,$ProjMonEva);

                    echo 'File uploaded successful';

        

          else

          {

                    echo 'upload failed!';

          }

}

?>

1 reply

Participating Frequently
February 17, 2014

You're not using curly braces with your IF statement, so only the first line after the statement will be executing conditionally. The other lines will be executed unconditionally. Wrap all statement you want to group with curly braces.

Prince MikeAuthorCorrect answer
Inspiring
February 17, 2014

Hi Bregent,

Do you mean like this

<?php

if(isset($_POST['submit']))

{

          $projid=$_POST['projid'];

          $projname=$_POST['projname'];

          $name=basename($_FILES['file_upload']['name']);

          $t_name=$_FILES['file_upload']['tmp_name'];

          $dir='upload';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $nameone=basename($_FILES['file_uploadone']['name']);

          $t_name=$_FILES['file_uploadone']['tmp_name'];

          $dir='upload1';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $nametwo=basename($_FILES['file_uploadtwo']['name']);

          $t_name=$_FILES['file_uploadtwo']['tmp_name'];

          $dir='upload2';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $namethree=basename($_FILES['file_uploadthree']['name']);

          $t_name=$_FILES['file_uploadthree']['tmp_name'];

          $dir='upload3';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $namefour=basename($_FILES['file_uploadfour']['name']);

          $t_name=$_FILES['file_uploadfour']['tmp_name'];

          $dir='upload4';

          if(move_uploaded_file($t_name,$dir."/".$name))

          $namefive=basename($_FILES['file_uploadfive']['name']);

          $t_name=$_FILES['file_uploadfive']['tmp_name'];

          $dir='upload5';

          if(move_uploaded_file($t_name,$dir."/".$name))

         

                    mysql_select_db ($database_ProjMonEva,$ProjMonEva);

                    $qur="insert into tbl_images (imageid, projid, projname, name, path, nameone, pathone, nametwo, pathtwo, namethree, paththree, namefour, pathfour, namefive, pathfive) values ('','$projid','$projname','$name','upload/$name','$nameone','upload/$ nameone','$nametwo','upload/$nametwo','$namethree','upload/$namethree' ,'$namefour','upload/$namefour','$namefive','upload/$namefive')";

                    $res=mysql_query($qur,$ProjMonEva);

                    echo 'File uploaded successful';

        

          else

          {

                    echo 'upload failed!';

          }

}

?>

Participating Frequently
February 17, 2014

>Do you mean like this

>    if(move_uploaded_file($t_name,$dir."/".$name))

>

>          $nameone=basename($_FILES['file_uploadone']['name']);

>          $t_name=$_FILES['file_uploadone']['tmp_name'];

>          $dir='upload1';

No, that's the same as before. In php as well as nearly all other programming languages, you use an IF statement to test a condition and then execute statements if that condition is true. IF statements use a grouping operator to group statements together than you want to execute. In PHP, the operator are the curly braces {}. You are allowed to not use the braces, but in that case only the first statement following the IF is executed conditionally.

The way you have it now, the line "$nameone=basename($_FILES['file_uploadone']['name']);" will only execute if the IF condition is true, but the other two lines:

$t_name=$_FILES['file_uploadone']['tmp_name'];

$dir='upload1';

will execute regardless of the IF statement - those lines are not associated with it in any way. So you need to use the group operator:

    if(move_uploaded_file($t_name,$dir."/".$name)){

          $nameone=basename($_FILES['file_uploadone']['name']);

          $t_name=$_FILES['file_uploadone']['tmp_name'];

          $dir='upload1';

  }

I would strongly urge you to get a book on basic programming to learn some of these fundamental rules or you will continue to struggle.