javascript - for - ফর্মডাটা এপিআই দিয়ে কীভাবে পোষ্ট অনুরোধ করবেন



javascript tutorial (2)

আমি যখন ব্যবহারকারীর নাম এবং form_data অবজেক্টটি পিএইচপি ফাইলে HT.post ব্যবহার করতে চাই যখন আমি কেবল ফর্ম_ডেটা পাস করি এটি আমার ছবি আপলোডে কাজ করে। তবে আমি ব্যবহারকারীর নাম হিসাবে কিছু অন্যান্য তথ্যও পাস করতে চাই। দয়া করে আমাকে কীভাবে http.post এ অন্য ডেটা পাস করতে সহায়তা করুন এবং এখানে আমার পিএইচপি ফাইল রয়েছে।

<?php include "connectdb.php";
    $data=json_decode(file_get_contents("php://input"));
    $name=$dbhandle->real_escape_string($data->susername);
    if (!empty($_FILES)) {
        $date=2;
        $path = 'fooditem/'. $_FILES['file']['name'];
        if (move_uploaded_file($_FILES['file']['tmp_name'],$path)) {
           $query="INSERT INTO `login`(`id`,`type`,`img`) VALUES('".$name."','".$date."','".$_FILES['file']['name']."')";   
           if($dbhandle->query($query)){
               echo 'File Uploaded';
           }
           else
               echo 'File Uploaded But Not Saved';
        }
    }else{
     echo 'Some Error';
    }
myapp.directive("fileInput",function($parse){
   return{
       link: function($scope,element,attrs){
           element.on("change",function(event){
               var files = event.target.files;
               $parse(attrs.fileInput).assign($scope, element[0].files);
               $scope.$apply();
               // console.log(files[0].name);
           });
       }
   } 
});
myapp.controller("myController",function($scope,$http){        
    $scope.signup = function(){

    var form_data = new FormData();
        angular.forEach($scope.files,function(file){
            form_data.append('file',file);
        });
    $http.post("picupload.php",{'susername':$scope.susername,form_data})
      .then(function(response){
          console.log(response);
    })                
});        
<input type="text" ng-model="username" name="username">
<input type="file" file-input="files" accept="image/*" />
<input type="submit" value="SIGN UP" ng-click="signup()"
       name="signup_btn" class="btn btn-primary">

https://src-bin.com


Answer #1

ফর্মডাটা এপিআই দিয়ে কীভাবে পোষ্ট অনুরোধ করবেন

ফর্মডেটা এপিআই দ্বারা নির্মিত বস্তুগুলি পোস্ট করার সময়, Content-type শিরোনামটি অপরিজ্ঞাত করে সেট করা গুরুত্বপূর্ণ।

$scope.signup = function(){

    var form_data = new FormData();
    angular.forEach($scope.files,function(file){
        form_data.append('file',file);
    });

    form_data.append('susername', $scope.susername);

    var config = {headers: { 'Content-type': undefined } };

    return $http.post("picupload.php",form_data, config)
      .then(function(response){
        console.log(response.data);
        return response.data;
    });                
};

এছাড়াও একটি ফর্মডাটা অবজেক্টটি জেএসএন স্ট্রিংয়ে সিরিয়াল করা যায় না এটি অবশ্যই এক্সএইচআর এপিআই দ্বারা প্রেরণ করা উচিত। ফর্মডাটা অবজেক্টে সমস্ত প্রয়োজনীয় ডেটা যুক্ত করুন।

এক্সএইচআর প্রেরণ ডেটা এপিআই দ্বারা তৈরি করা কোনও আইটেম পোস্ট করে, এটি স্বয়ংক্রিয়ভাবে একটি উপযুক্ত এনক্যাপসুলেশন সীমানা সহ মাল্টার্ট্ট multipart/form-data সামগ্রী টাইপ শিরোলেখ সেট করে এবং বেস 6464 এনকোডিং ব্যবহার করে ডেটা এনকোড করে।

সাধারণত $ http পরিষেবাটি এক্সএইচআর এপিআইকে ওভাররাইড করে কনটেন্ট টাইপ application/json সেট করে। কনটেন্ট টাইপ শিরোলেখকে অপরিজ্ঞায়িত করে সেট করা XHR এপিআইকে সঠিকভাবে শিরোনামটি সেট করার স্বাধীনতা দেয়।

হালনাগাদ

সার্ভারের দিকে ব্যবহার করুন:

$_POST['susername'];

তথ্য আইটেম গ্রহণ।


Answer #2

আপনি এই জাতীয় কিছু যুক্ত করতে পারেন:

 myapp.controller("myController",function($scope,$http){
        $scope.signup = function(){    
        var form_data = new FormData();
        angular.forEach($scope.files,function(file){
                form_data.append('file',file);
        });
        form_data.append('susername',$scope.susername);  // new line
        var config = {headers: { 'Content-type': undefined } };
        $http.post("picupload.php",form_data, config)
                .success(function(response){
                alert(response);
        });                
}   

আমি পিএইচপি সম্পর্কে নিশ্চিত নই তবে গুগলিংয়ের পরে আমি দেখতে পেলাম যে পিএইচপি 'সুরসনাম' নীচের মত পুনরুদ্ধার করতে পারে:

$_POST['susername'];





angularjs-fileupload