问题描述
上传Ionic Document Scanner插件拍摄的图像时遇到麻烦。
我获得了图像路径,并且可以在img标签中预览它,但是我无法将其上传到我的Asp.Net Wep API。
当我使用文件输入上传文件时,它运行良好。但不适用于扫描的图像或照相机图像。
我认为问题是我具有本地存储URL(例如,文件:///storage/emulated/0/Pictures/1597104575209.jpg),但没有文件本身要上传。
这是我的page.ts文件:
scanId(){
const opts: DocumentScannerOptions = {
sourceType: DocumentScannerSourceType.CAMERA,fileName: 'docscan.jpg',quality: 2.5,returnBase64: false // get local path
};
this.docScanner.scanDoc(opts)
.then((res: any) => {
this.imagenUpload = res; // file:///storage/emulated/0/Pictures/1597104575209.jpg
const img = window.Ionic.WebView.convertFileSrc( res );
this.imagen = img;
})
.catch((error: any) => console.error(error));
}
uploadImage(){
const headers = new HttpHeaders({
Authorization: `Bearer ${this.usuarioService.token}`
});
const formData = new FormData();
formData.append('archivo',this.imagenUpload,'test123.jpg'); //Sending image in body with key 'archivo'
this.httpClient.post(this._url,formData,{headers}).subscribe((res) => {
// res contains server response
console.log(res);
},err => {
console.log(err);
});
}
这是我的Asp.Net API:
[HttpPost]
[Authorize]
[Route("LicensePic")]
public IHttpActionResult UploadLicensePic()
{
HttpPostedFile file = HttpContext.Current.Request.Files["archivo"];
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(
@"C:\Temp\RS Api",fileName
);
file.SaveAs(path);
var rpta = new
{
status = "ok",descri = "File uploaded",file = file.ContentType
};
var result = Request.CreateResponse(HttpStatusCode.OK,rpta);
return ResponseMessage(result);
}
else
{
var rpta = new
{
status = "error",descri = "Missing file to upload"
};
var result = Request.CreateResponse(HttpStatusCode.BadRequest,rpta);
return ResponseMessage(result);
}
}
API的响应是正文没有附件。如果我尝试上传Camera插件结果,也会发生同样的情况。仅适用于文件输入。
有人可以在这里帮助我吗?我是Ionic的新手,所以我不知道如何正确处理“相机”或“扫描仪”结果。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)