ios – 从相机照片库上传的离子应用图像

ios – 从相机照片库上传的离子应用图像,第1张

概述我正在开发离线聊天应用程序,用户可以在其中上传照片作为其消息的一部分.我正在寻找一种将图像上传到我的webhost服务器的方式,以便稍后通过URL检索. 问题是我无法让它上​​传到我的网络服务器. 我正在使用这两个插件: > org.apache.cordova.file-transfer > cordova插件相机 当我在xcode模拟器中运行应用程序并从设备照片库中选择一个图片时,控制台给我以 我正在开发离线聊天应用程序,用户可以在其中上传照片作为其消息的一部分.我正在寻找一种将图像上传到我的webhost服务器的方式,以便稍后通过URL检索.

问题是我无法让它上​​传到我的网络服务器.

我正在使用这两个插件:

> org.apache.cordova.file-transfer
> cordova插件相机

当我在xcode模拟器中运行应用程序并从设备照片库中选择一个图片时,控制台给我以下消息:

文件传输完成响应码200
> voID SendDelegateMessage(NSInvocation *):等待10秒后,委托(webVIEw:runJavaScriptAlertPanelWithMessage:initiateByFrame :)无法返回.主运行循环模式:kcfRunLoopDefaultMode>
>成功:“”

这是我目前使用的代码:

app.controller('HomeController',function($rootScope,$scope,$cordovaCamera,$ionicActionSheet,$cordovafileTransfer){ ...// open Photolibrary    $scope.openPhotolibrary = function() {        var options = {            quality: 100,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 url = "http://mydomein.com/upload.PHP";            //target path may be local or url            var targetPath = imageData;            var filename = targetPath.split("/").pop();            var options = {                fileKey: "file",filename: filename,chunkedMode: false,mimeType: "image/jpg"            };            $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;                })            });        },function(err) {            // error            console.log(err);        });    }

这是我的upload.PHP文件:

<?PHP// move_uploaded_file($_fileS["file"]["tmp_name"],$cwd . '/files/images/');move_uploaded_file($_fileS["file"]["tmp_name"],"/files/images");?>
解决方法 经过一些挖掘,很多的尝试,我终于得到它的工作.

这是我想出的代码:

// open Photolibrary    $scope.openPhotolibrary = function() {        var options = {            quality: 50,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),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);        });    }

而在域上服务器上的upload.PHP中的代码:

<?PHP// if you want to find the root path of a folder use the line of code below://echo $_SERVER['document_ROOT']if ($_fileS["file"]["error"] > 0){echo "Error Code: " . $_fileS["file"]["error"] . "<br />";}else{echo "Uploaded file: " . $_fileS["file"]["name"] . "<br />";echo "Type: " . $_fileS["file"]["type"] . "<br />";echo "Size: " . ($_fileS["file"]["size"] / 1024) . " kilobytes<br />";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  {  move_uploaded_file($_fileS["file"]["tmp_name"],"/var/www/vhosts/yourdomain.com/subdomains/domainname/httpdocs/foldername/images/".$_fileS["file"]["name"]);  echo "Done";  }}?>
总结

以上是内存溢出为你收集整理的ios – 从相机/照片库上传的离子应用图像全部内容,希望文章能够帮你解决ios – 从相机/照片库上传的离子应用图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1111799.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存