2016-03-30 3 views
1

Я новичок в php любезно прошу прощения, если я глуп.Сохранение изображений в папке в php без отдельной кнопки загрузки

У меня есть форму, которая при подаче обновляет изменения в форме.

Теперь я добавил поле для загрузки изображения с типом поля в качестве файла. мой вопрос: я не хочу, чтобы он был загружен, нажав кнопку загрузки отдельно, вместо этого я хочу использовать ту же самую старую кнопку отправки, которую я использую для обновления формы. Я попробовал несколько способов, но не смог. Также я хочу сохранить только в названии admin и она должна позволить только .jpg расширение

Моя форма кодовая страница выглядит следующим образом

<?php 

     if(isset($_POST['update'])) { 

      $info = pathinfo($_FILES['imagefile']['name']); 
      $ext = $info['extension']; // get the extension of the file 
      $newname = "admin.".$ext; 

      $target = WEB_URL .'img/'.$newname; 
      move_uploaded_file($_FILES['imagefile']['tmp_name'], $target); 

      $name_a = $_POST['name']; 
      $email_a = $_POST['email']; 
      $pass_a = $_POST['password']; 

$sql = "UPDATE admin SET a_name = '$name_a', a_email = '$email_a', password = '$pass_a' where aid='$update_id' "; 
      $retval = mysql_query($sql,$link); 

      if(! $retval) { 
       die('Could not update data: ' . mysql_error()); 
      } 
      // echo "Updated data successfully\n"; 

     } 
$result = mysql_query("SELECT * FROM admin where aid='$update_id' ",$link); 
    while($row = mysql_fetch_array($result)){ 

     $name = $row['a_name']; 
     $email = $row['a_email']; 
     $password = $row['password']; 

    } 
    mysql_close($link); 

      ?> 

     <div class="box box-widget widget-user-2"> 
     <div class="widget-user-header bg-yellow"> 
       <div class="widget-user-image"> 
       <?php echo '<img src="' . $img . '" class="img-circle" alt="User Image">'; ?> 
       </div> 
       <!-- /.widget-user-image --> 
       <h3 class="widget-user-username"><?php echo "$name"; ?></h3> 
       <h5 class="widget-user-desc"><?php echo "$role"; ?></h5> 
      </div> 
      <div class="box-footer no-padding"> 
       <form role="form" method = "post" action = "<?php echo $_SERVER['PHP_SELF']; ?>"> 
       <div class="box-body"> 
       <div class="form-group"> 
        <label for="exampleInputName1">Name</label> 
        <input type="text" class="form-control" id="exampleInputName1" name="name" value="<?php echo $name; ?>"> 
       </div> 
       <div class="form-group"> 
        <label for="exampleInputEmail1">Email address</label> 
        <input type="email" class="form-control" id="exampleInputEmail1" name="email" value="<?php echo $email; ?>"> 
       </div> 
       <div class="form-group"> 
        <label for="exampleInputPassword1">Password</label> 
     <input type="password" class="form-control" id="exampleInputPassword1" name="password" value="<?php echo $password; ?>"> 
       </div> 
       <div class="form-group"> 
        <label for="exampleInputFile">Profile picture</label><br/> 
        <img id="preview" src="<?php echo $img; ?>" /><br/><br/> 
        <input type="file" onchange="readURL(this);" id="exampleInputFile" name="imagefile"> 
       </div> 

       </div> 
       <!-- /.box-body --> 

       <div class="box-footer"> 
       <button type="submit" name="update" id="update" class="btn btn-primary">Submit</button> 
       </div> 
      </form> 
      </div> 
      </div> 
      <!-- /.widget-user --> 

Линии, которые я пытался и не достичь мое требование заключается в следующем. который также присутствует в вышеуказанном коде.

$info = pathinfo($_FILES['imagefile']['name']); 
$ext = $info['extension']; // get the extension of the file 
$newname = "admin.".$ext; 

$target = WEB_URL .'img/'.$newname; 
move_uploaded_file($_FILES['imagefile']['tmp_name'], $target); 
+0

Возможные дубликат [Что это лучший способ/практика, чтобы получить расширение в загружаемого файла в PHP] (http://stackoverflow.com/questions/4591523/whats- ( – Bonatti

+0

) обратите внимание, что если вы размещаете все изображения в одной папке, что, кажется, так, это, вероятно, очень плохая идея, чтобы всегда называть его одним и тем же ... –

ответ

2

Вы забыли написать enctype="multipart/form-data" в ваш <form> без этого атрибута вы не можете загрузить любое изображение.

Вы должны изменить:

<form role="form" method = "post" action = "<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data"> 
+0

извините за то, что вы задали глупые вопросы, где это должно быть на самом деле, и означают внутри.

тег –

+0

Спасибо, теперь он показывает два предупреждения 'Warning: move_uploaded_file (http: /localhost/su/img/admin.jpg) : не удалось открыть поток: HTTP-обертка не поддерживает записываемые соединения в C: \ xampp \ htdocs \ su \ profile.php в строке 21' 'Warning: move_uploaded_file(): Невозможно переместить 'C: \ xampp \ tmp \ php6165.tmp 'to' http: //localhost/su/img/admin.jpg 'в C: \ xampp \ htdocs \ su \ profile.php в строке 21' –

+0

У вас есть какие-либо разрешения в вашей папке или проверьте загрузку изображения путь к папке. @ RajaGopal –

Смежные вопросы