2016-03-30 15 views
1

私はばかだと私は親切なことに私はPHPの初心者です。別のアップロードボタンを使わずにPHPのフォルダに画像を保存する

私は、送信時にフォームの変更を送信するフォームを持っています。

ここで、ファイルとしてフィールドタイプの画像アップロードフィールドを追加しました。私の質問は、別にアップロードボタンをクリックしてアップロードするのではなく、フォームの更新に使用する同じ古い送信ボタンを使用することです。私はいくつかの方法を試みたが、失敗した。また、私は名前adminにのみ保存した​​いと、それは私が試したし、次のように私の要件がある達成するために失敗しました

<?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 --> 

行を次のようにのみ.jpg延長

マイフォームページのコードは許可する必要があります。これは上記のコードにもあります。

$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

あなたは任意の画像をアップロードすることはできません。この属性なしであなたの<form>enctype="multipart/form-data"を書くのを忘れていました。

あなたが変更する必要があります。

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

これは実際に来なければならない、愚かな質問の相手に尋ねて申し訳ありません

タグ –

+0

ありがとう、今、それは2つの警告 '警告:move_uploaded_file /localhost/su/img/admin.jpg):fai HTTPラッパーは、21行目のC:\ xampp \ htdocs \ su \ profile.phpの書き込み可能な接続をサポートしていません。 ' 警告:move_uploaded_file():' C:\ xampp \ tmp \ php6165 .tmp 'を' http://localhost/su/img/admin.jpg 'に置き換えてください。C:\ xampp \ htdocs \ su \ profile.php(21行目) –

+0

あなたのフォルダにあなたの権限がありますか、パス。@ RajaGopal –

関連する問題