如何上传带文字的照片?

时间:2013-04-15 09:00:32

标签: php mysql

这是学生档案信息表格,当我提交表格所有数据完全保存到mysql表格时它工作正常,但我想上传带信息的照片

填写表格并在提交表格后附上图片

在图像目录中没有上传但在mysql表中照片名称保存完好,但没有上传到图像文件夹。

我该怎么做才能帮我解决这个问题?

提交表格

 <form action="" method="post">
 <div>
   <p><span class="style9"><strong>G.R.N No:</strong></span><strong>  *</strong>
     <input name="grn" type="text" value="<?php echo $grn; ?>" size="50" />
   </p>
   <p><span class="style9"><strong>Name:</strong></span><strong>  *</strong>
     <input name="name" type="text" value="<?php echo $name; ?>" size="50" />
   </p>
   <p><span class="style9"><strong>Home Address:</strong></span><strong>  *</strong>
     <textarea name="address" cols="50"><?php echo $address; ?></textarea>
   </p>
   <p><span class="style9"><strong>Father Name:</strong></span><strong>  *</strong>
     <input name="fathername" type="text" value="<?php echo $fathername; ?>" size="50" />
   </p>
      <p><span class="style9"><strong>Mother Name:</strong></span><strong>  *</strong>
     <input name="mothername" type="text" value="<?php echo $mothername; ?>" size="50" />
    </p>
    <p><span class="style9"><strong>Date Of Birth :</strong></span><strong>  *</strong>
      <input name="age" type="text" value="<?php echo $age; ?>" size="50" />
   </p>
      <p><span class="style9"><strong>Religion :</strong></span><strong>  *</strong>
        <input name="religion" type="text" value="<?php echo $religion; ?>" size="50" />
   </p>
   <p><span class="style9"><strong>Parents Cell No :</strong></span><strong>  *</strong>
     <input name="phoneno" type="text" value="<?php echo $phoneno; ?>"/>
   </p>
   <p><strong>Home Phone No:</strong>
     <input name="phoneno2" type="text" value="<?php echo $phoneno2; ?>" />
   </p>
   <p><span class="style9"><strong>Date Of Join :</strong></span><strong>  *</strong>
     <input id="fullDate" name="dateofjoin" type="text" value="<?php echo $dateofjoin; ?>" size="50" />
   </p>
    <p><span class="style9"><strong>Class :</strong></span><strong>  *</strong>
      <input  name="class" type="text" value="<?php echo $class; ?>" size="50" />
   </p>
    <p><span class="style9"><strong>N.I.C :</strong></span><strong>  *</strong>
      <input name="nic" type="text" value="<?php echo $nic; ?>" size="50" />
   </p>
    <span class="style9"><strong>Branch:</strong></span><strong> *</strong>
    <input name="branch" type="text" value="<?php echo $branch; ?>" size="50">
<span class="style9"><strong>Photo:</strong></span><strong> *</strong>
             <input type="hidden" name="size" value="350000">
            <input type="file" name="photo"> 
    <br/>
   <p class="style1">* required</p>
 <input type="submit" name="submit" value="Submit">
 </div>
 </form> 

php code

<?php 
 }


 //This is the directory where images will be saved
$target = "images/";
$target = $target . basename( $_FILES['photo']['name']);

//This gets all the other information from the form

$photo=($_FILES['photo']['name']);
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{

//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}

 // connect to the database
 include('connect-db.php');



 // check if the form has been submitted. If it has, start to process the form and save it to the database
 if (isset($_POST['submit']))
 { 
 // get form data, making sure it is valid
 $grn = mysql_real_escape_string(htmlspecialchars($_POST['grn']));
 $name = mysql_real_escape_string(htmlspecialchars($_POST['name']));
 $address = mysql_real_escape_string(htmlspecialchars($_POST['address']));
 $branch = mysql_real_escape_string(htmlspecialchars($_POST['branch']));
 $phoneno = mysql_real_escape_string(htmlspecialchars($_POST['phoneno']));
 $phoneno2 = mysql_real_escape_string(htmlspecialchars($_POST['phoneno2']));
 $fathername = mysql_real_escape_string(htmlspecialchars($_POST['fathername']));
 $mothername = mysql_real_escape_string(htmlspecialchars($_POST['mothername']));
 $age = mysql_real_escape_string(htmlspecialchars($_POST['age']));
 $religion = mysql_real_escape_string(htmlspecialchars($_POST['religion']));
 $nic = mysql_real_escape_string(htmlspecialchars($_POST['nic']));
 $class = mysql_real_escape_string(htmlspecialchars($_POST['class']));
 $dateofjoin = mysql_real_escape_string(htmlspecialchars($_POST['dateofjoin']));
 $photo = mysql_real_escape_string(htmlspecialchars($_POST['photo']));

 // check to make sure both fields are entered
 if ($grn == '' || $name == '' || $address == '')
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 // if either field is blank, display the form again
 renderForm($grn, $name, $address, $branch, $phoneno, $phoneno2, $fathername, $mothername, $age, $religion, $nic, $class, $dateofjoin,$error);
 }
 else
 {
 // save the data to the database
  mysql_query("INSERT admission SET grn='$grn', name='$name', address='$address', branch='$branch', phoneno='$phoneno', phoneno2='$phoneno2', fathername='$fathername', mothername='$mothername', age='$age', religion='$religion', nic='$nic', class='$class', dateofjoin='$dateofjoin', photo='$photo'")
 or die(mysql_error()); 
 echo "<center>Admission Complete!</center>";
 // once saved, redirect back to the view page

 }
 }
 else
 // if the form hasn't been submitted, display the form
 {
 renderForm('','','','','','','','','','','','','','');
 }




?>

2 个答案:

答案 0 :(得分:2)

<form action="" method="post">更改为<form action="" method="post" enctype="multipart/form-data">

有关更多信息,请参阅此w3schools页面: http://www.w3schools.com/php/php_file_upload.asp

答案 1 :(得分:0)

表单标记中缺少

enctype = multipart/form-data ... 如果您没有设置$_FILES,则不会填充enctype数组。 所以使用

<form action="" method="post"> to <form action="" method="post" enctype="multipart/form-data">

检查php.ini中的文件夹权限和以下设置

file_uploads
upload_max_filesize
max_input_time
memory_limit
max_execution_time
post_max_size

使用此功能后,您无法使用$_POST访问文件信息,但只能$_FILES $_FILES['photo']['name']

<强> FIX

REPLACE

$photo = mysql_real_escape_string(htmlspecialchars($_POST['photo']));

$photo = mysql_real_escape_string(htmlspecialchars($_FILES['photo']['name']));