Ionic File Upload无法正常工作

时间:2017-01-22 15:36:27

标签: javascript php jquery html

某些功能不起作用,无论是文件上传部分还是PHP上的接收端。但是,记录确实在数据库中创建,并且用户ID确实已发送。在选择或拍摄图像时,它会显示在HTML img标签内

这是我的PHP

<?php

    //http://stackoverflow.com/questions/18382740/cors-not-working-php
    if (isset($_SERVER['HTTP_ORIGIN'])) {
        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Max-Age: 86400');    // cache for 1 day
    }
    // Access-Control headers are received during OPTIONS requests
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");         
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
            header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
        exit(0);
    }
    //http://stackoverflow.com/questions/15485354/angular-http-post-to-php-and-undefined
    $postdata = file_get_contents("php://input");
    if (isset($postdata)) {
        $request = json_decode($postdata);
        $text = $request->textpost;
        $uid = $request->uid;

        $usid = $_POST['uid'];
        $txtpos = $_POST['textpost'];
        $target_file = basename($_FILES["file"]["tmp_name"]);
        $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
    
  
      $mysqli = new mysqli('127.0.0.1','root','***','pdo_ret');  
      
      // If a connection error occurred, stop here.
      if ($mysqli->connect_error) {  
          die('Could not connect to Socialnetwk DB: ' . $mysqli->error);  
      }

          $conn = new mysqli('127.0.0.1','root','***','pdo_ret');

      // Switch to the ajax_demo schema
          $mysqli->select_db("ajax_demo");

            $date = date('Y-m-d') ."\n";
            $now = time(); $utc_time = $now - intval(date('Z', $now));
            $time = date('H:i:s', $now);
            $post_id=(uniqid());
            $UsrID = $usid;
            $format = 'img';
            $file_format = 'jpg';
            $MediaTxt = $txtpos;
            $author_id = $usid;
            $relation = 'feed';
            $userID = $usid;

            $MediaTxtNw = strip_tags($MediaTxt, '<h1><h2><h3><h4><h5><h6><img><video><audio><iframe><a>');

            $uploadfilename = $_FILES['file']['tmp_name'];
 
            if(move_uploaded_file($uploadfile)){
                    echo 'File successfully uploaded!';
            } else {
                    echo 'Upload error!';
            }
            $target_dir = ('media');
            $target_file = strtolower($target_dir . $post_id . $author_id .'.'.pathinfo($_FILES["file"]["tmp_name"], PATHINFO_EXTENSION));
            $uploadOk = 1;
            $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
            (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file));

            $sql = "INSERT INTO media (date,time,userID,post_id,format,file_format,MediaTxt,author_id,relation) VALUES ('$date', '$time', '$userID', '$post_id', '$format', '$file_format', '$MediaTxt', '$author_id', '$relation')";

            if ($conn->query($sql) === TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $sql . "<br>" . $conn->error;
            }

          $conn->close(); 



        
     }
    else {
        echo "Error";
    }
?>

这是我的控制器

$scope.submit = function() {
     var url = "https://app.socialnetwk.com/feed_post.php";
     //target path may be local or url
     var targetPath = $scope.imgURI;
      var filename = targetPath.split("/").pop();
        var options = {
            fileKey: "file",
            fileName: filename,
            chunkedMode: false,
            mimeType: "image/jpg",
            params : {'uid':$localStorage.session_id, 'textpost':$scope.fposttxt.text}
        };
        $cordovaFileTransfer.upload(url, targetPath, options).then(function(result) {
            console.log("SUCCESS: " + JSON.stringify(result.response));
            alert("success");
            alert(JSON.stringify(result.response));
        }, function(err) {
            console.log("ERROR: " + JSON.stringify(err));
            alert(JSON.stringify(err));
        }, function (progress) {
            // constant progress updates
            $timeout(function () {
            $scope.downloadProgress = (progress.loaded / progress.total) * 100;
          })
        });
    }

这是我的HTML

<form ng-submit="submit()" id="search-form4" class="list" style="padding-top: 0px;">
  <div class="list" style="padding-top: 0px;">
    <div class="item item-input-inset" style="border:0px;">
      <label class="item-input-wrapper">
        <input type="text" ng-model="fposttxt.text" placeholder="Post" style="padding:0px;">
      </label>
         <i style="color: #387ef5;background:none;margin:0px;padding-right:2px;height:auto;min-width:15px;padding-left:2px;" class="button icon-left ion-camera" ng-model="fposttxt.image" ng-click="loadImage()" ></i>
      <img  ng-src="{{imgURI}}" style="width: 50px; height: 50px;">
      <button ng-click="uploadImage()" class="button button-small button-positive">
        Submit
      </button>
      
    </div>
  </div>
</form>

0 个答案:

没有答案