Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ionic应用程序图像从相机照片库上载,但文件名为img;。图jpg“;_Android_Ionic Framework_File Transfer_Ngcordova - Fatal编程技术网

Android ionic应用程序图像从相机照片库上载,但文件名为img;。图jpg“;

Android ionic应用程序图像从相机照片库上载,但文件名为img;。图jpg“;,android,ionic-framework,file-transfer,ngcordova,Android,Ionic Framework,File Transfer,Ngcordova,我曾经在我的ionic应用程序中上传过一张图片。除了文件名,一切都很顺利 文件名变为“.Pic.jpg” 为什么会发生这种情况?我应该做些什么来克服这个问题? 具体来说,如何使上载图像的文件名与所选图像具有相同的名称 我查到了你提到的代码。那个上传的文件在那个里,但文件名不见了。为此,您需要提及要上载文件的图像的名称。比如说 var options = { quality: 90, destinationType: Camera.Destin

我曾经在我的ionic应用程序中上传过一张图片。除了文件名,一切都很顺利

文件名变为“.Pic.jpg”

为什么会发生这种情况?我应该做些什么来克服这个问题?
具体来说,如何使上载图像的文件名与所选图像具有相同的名称

我查到了你提到的代码。那个上传的文件在那个里,但文件名不见了。为此,您需要提及要上载文件的图像的名称。比如说

       var options = {
          quality: 90,
          destinationType: Camera.DestinationType.FILE_URI,
          sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
          allowEdit: true,
          encodingType: Camera.EncodingType.JPEG,
          popoverOptions: CameraPopoverOptions,
          saveToPhotoAlbum: false
        };

        $cordovaCamera.getPicture(options).then(function(imageData) {  
          $scope.profileImageData = imageData;  

          $scope.profileImageName = Math.floor(Math.random()*16777215).toString(16)

          var server = baseUrlImageUpload+'upload.php';
          filePath = imageData;
          var date = new Date();

          var options = {
            fileKey: "file",
            fileName: $scope.profileImageName,
            chunkedMode: false,
            mimeType: "image/jpg"
          };

          $cordovaFileTransfer.upload(server, filePath, options).then(function(result) {
            $ionicLoading.hide();
            //alert(JSON.stringify(result.response));

          }, function(err) {
           $ionicLoading.hide(); 
           //alert("Select image again") 

            var alertPopup = $ionicPopup.alert({
              title: 'Sorry!',
              template: 'Please select image again.'
            });

          }, function (progress) {
             $ionicLoading.show({
               template: 'Updating Image...'
            }); 
          });

        });
在上面的代码中,我将随机传入图像名称 $scope.profileImageName=Math.floor(Math.random()*16777215).toString(16)

您的php代码如下所示

<?php

  if ($_FILES["file"]["error"] > 0) {
    echo "Error Code: " . $_FILES["file"]["error"] . "<br />";
  }  else  {

  if ($_FILES["file"]["size"] < 1024 * 1024) {
    if (file_exists("/files/".$_FILES["file"]["name"]))
    {
      echo $_FILES["file"]["name"] . " already exists. No joke-- this error is almost <i><b>impossible</b></i> to get. Try again, I bet 1 million dollars it won't ever happen again.";
    }  else  {
      $number = rand(111111,999999);
    move_uploaded_file($_FILES["file"]["tmp_name"], 'images/' .$_FILES["file"]["name"].'.jpg');
    echo "Done";
    //return $number;
    }
  }  else {
     // echo "File Size: " . ($_FILES["file"]["size"] / 1024 * 1024) . " MB<br />";
    echo "Please upload below 1MB images";
  }
}

?>