Ionic app image upload from camera / photo library

后端 未结 2 1972
囚心锁ツ
囚心锁ツ 2020-12-13 07:33

I\'m working on a ionic chat app where the user can upload a photo as part of their message. I\'m looking for a way to upload the image to my webhost server so I can retriev

2条回答
  •  感情败类
    2020-12-13 07:59

    After some digging around and lot's of trying I finally got it working.

    This is the code I came up with:

    // open PhotoLibrary
        $scope.openPhotoLibrary = function() {
            var options = {
                quality: 50,
                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) {
    
                //console.log(imageData);
                //console.log(options);   
                var image = document.getElementById('tempImage');
                image.src = imageData;  
    
                var server = "http://yourdomain.com/upload.php",
                    filePath = imageData;
    
                var date = new Date();
    
                var options = {
                    fileKey: "file",
                    fileName: imageData.substr(imageData.lastIndexOf('/') + 1),
                    chunkedMode: false,
                    mimeType: "image/jpg"
                };
    
                $cordovaFileTransfer.upload(server, filePath, options).then(function(result) {
                    console.log("SUCCESS: " + JSON.stringify(result.response));
                    console.log('Result_' + result.response[0] + '_ending');
                    alert("success");
                    alert(JSON.stringify(result.response));
    
                }, function(err) {
                    console.log("ERROR: " + JSON.stringify(err));
                    //alert(JSON.stringify(err));
                }, function (progress) {
                    // constant progress updates
                });
    
    
            }, function(err) {
                // error
                console.log(err);
            });
        }
    

    And the code in upload.php on the domain server:

     0){
    echo "Error Code: " . $_FILES["file"]["error"] . "
    "; } else { echo "Uploaded file: " . $_FILES["file"]["name"] . "
    "; echo "Type: " . $_FILES["file"]["type"] . "
    "; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kilobytes
    "; if (file_exists("/files/".$_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. No joke-- this error is almost impossible to get. Try again, I bet 1 million dollars it won't ever happen again."; } else { move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/vhosts/yourdomain.com/subdomains/domainname/httpdocs/foldername/images/".$_FILES["file"]["name"]); echo "Done"; } } ?>

提交回复
热议问题