Ionic 1获取文件路径及上传问题求助:无法获取准确路径
解决Ionic 1中相机选图无法获取文件路径的问题
嘿,我看你在Ionic 1里做文件上传时,用相机选图后拿到的是长串的DATA_URL而非真实文件路径,这确实会给上传操作带来困扰。咱们来一步步搞定这个问题:
问题根源
你当前代码里把destinationType设成了Camera.DestinationType.DATA_URL,这个参数的作用就是返回图片的base64编码字符串,而不是本地文件的路径。要拿到文件路径,得调整这个核心参数。
解决方案步骤
1. 修改Camera的配置参数
把destinationType改成Camera.DestinationType.FILE_URI(返回文件URI)或者Camera.DestinationType.NATIVE_URI(返回原生平台的绝对路径)。修改后的代码如下:
$scope.selectPhoto = function(){ var options = { quality: 50, destinationType: Camera.DestinationType.FILE_URI, // 关键修改点 sourceType: Camera.PictureSourceType.PHOTOLIBRARY, targetWidth: 400, targetHeight: 500, saveToPhotoAlbum: false // 可选,根据需求决定是否保存到相册 }; $cordovaCamera.getPicture(options).then( function(imageURI) { $ionicLoading.show({template: 'Image Selected...', duration:1000}); // 现在imageURI就是文件路径了,比如Android的file:///storage/...或者iOS的对应路径 $scope.imagePath = imageURI; // 接下来就可以用这个路径执行文件上传操作了 }, function(err) { console.error('选图失败:', err); } ); };
2. 处理特殊路径(如content://开头的URI)
部分Android设备返回的URI是content://开头的,这种路径可能无法直接被上传插件识别,需要转换成真实的文件路径。这时候要用到cordova-plugin-file插件,示例代码如下:
// 拿到imageURI后执行路径解析 $cordovaFile.resolveLocalFileSystemURL(imageURI) .then(function(fileEntry) { // fileEntry.fullPath就是真实的本地文件路径 var realFilePath = fileEntry.fullPath; // 也可以用fileEntry.toURL()获取标准格式的URI console.log('真实文件路径:', realFilePath); // 这里可以调用上传方法 }) .catch(function(err) { console.error('解析路径失败:', err); });
3. 文件上传示例(用cordova-plugin-file-transfer)
如果需要完成上传流程,这里给你一个用$cordovaFileTransfer的示例:
var uploadOptions = { fileKey: 'file', fileName: 'uploaded_photo.jpg', chunkedMode: false, mimeType: 'image/jpeg' }; $cordovaFileTransfer.upload('你的后端上传接口URL', $scope.imagePath, uploadOptions) .then(function(result) { console.log('上传成功:', result.response); }, function(err) { console.error('上传失败:', err); });
注意事项
- 确保你已经安装了所需的插件:
cordova plugin add cordova-plugin-camera cordova plugin add cordova-plugin-file cordova plugin add cordova-plugin-file-transfer - 检查权限配置:Android需要添加读写外部存储权限,iOS需要在
info.plist中添加相册访问权限的描述文本。
内容的提问来源于stack exchange,提问作者Avinash Karn
相关产品推荐
相关产品推荐

