我正在开发离子3中的应用程序,需要使用在流明框架中创建的api将图像上传到服务器 . 上传图像的请求是:从相机单击图像并转换为base64 .
let base64Image = 'data:image/jpeg;base64,' + imageData;
然后我使用FileUpload上传图像
import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer';
buildHeadersDeals(){
this.header = new Headers();
this.header.append('Authorization', 'Basic '
+btoa("test:test"));
}
uploadPhoto(image, token) {
this.buildHeadersDeals();
url = 'http://192.168.2.12/api/upload?token="+token;
const fileTransfer: FileTransferObject = this.transfer.create();
let options: FileUploadOptions = {
fileKey: 'photo',
fileName: image.substr(image.lastIndexOf('/')+1),
chunkedMode: true,
mimeType: "image/jpeg",
headers: this.header,
}
return fileTransfer.upload(image, encodeURI(url), options)
.then((data) => {
console.log(data);
return data;
}, (err) => {
console.log(err);
});
}
我的api结尾是:
public function upload(Request $request) {
if ($request->hasFile('photo')) {
$image = $request->file('photo');
$response['image'] = $image;
return response()->json($response,200);
}
}
我有两个问题:
1)我总是将照片视为空($ request-> file('photo'))
2)有人可以告诉我发送令牌为params,下面的代码不起作用:
let options: FileUploadOptions = {
fileKey: 'photo',
fileName: image.substr(image.lastIndexOf('/')+1),
chunkedMode: true,
mimeType: "image/jpeg",
headers: this.header,
params: {
'token': 'sffsdhnzchvh'
}
}
谢谢
1 回答
我安装了“cordova-plugin-camera”:“^ 4.0.2”和“cordova-plugin-file”:“^ 6.0.1”
函数调用
->
this.selectImage(this.camera.PictureSourceType.CAMERA);