关于将图像识别上传图像到后台的问题
as15989861619 发布于2019-11 浏览:1664 回复:2
0
收藏

是这样的···我最近在尝试把图片识别的功能放到我的web项目里头,在后台用其实没问题的,但是我用于前台就有个问题一直困扰着我,那就是图片通过前台页面是怎么样才能提供给控制器

因为通用识别的其中一个参数是输入本地的图片地址或者是二进制数据,二进制数据我不知道是什么,是Base64吗。不是的话当我没说

很显然输入本地图片的地址是不能直接读取的,毕竟有安全协议,然后我想过要不就直接上传图片到指定路径,读取文件名然后再拼起来用。但是那样很显然很麻烦而且很蠢。所以我想问一下各位到底是怎么做到网页上传图片然后识别的。最后附上我jsp页面前台展示图片并获取文件名的方法,如果能在这些的基础上完善的话就更好了,如果没有办法的话我只能用蠢办法了,希望各位大佬能帮一下我,

function change(obj) {
            var oFReader = new FileReader();
            var file =obj.files[0];
            oFReader.readAsDataURL(file);
            oFReader.onloadend = function(oFRevent){//展示图片出来
                var src = oFRevent.target.result;
                $('#images').attr('src',src);
            }
			var len = obj.files.length;//获得文件名的长度
			for (var i = 0; i < len; i++) {//用for循环获取文件的名字
				picture = "images/"+obj.files[i].name;
			}
        }

谢谢。

 

收藏
点赞
0
个赞
共2条回复 最后由as15989861619回复于2019-11
#3as15989861619回复于2019-11

谢谢,我是java语言的,不过我现在已经找到解决方法了。正在尝试直接获取然后读出来BASE64再直接转换成二进制上传。希望可以成功

0
#2用户已被禁言回复于2019-11

你是啥后台语言呢?

文件上传有做过吗?

以下示例说明中代码是Java

    @RequestMapping(value = "/detect",method = {RequestMethod.POST})
    public String uploadDetectFace(@RequestParam(value = "file")MultipartFile file, HttpServletRequest request, HttpServletResponse response){
file.getBytes();//这个就是bytes[]数据 SDK是只支持bytes[] 或者 图片本地路径
想要传路径就是保存一下 把路径给SDK的方法即可
  xxClient client = new xxClient(APPID,APIKEY,SECRET);
  client.detect(file.getBytes());
}

那么在POSTMAN 就是

在微信小程序端调用就是

        wx.uploadFile({
          url:'http://127.0.0.1/xxx/detect',
          filePath: res.tempFilePaths[0],//拿到的图片临时路径微信返回的。
          header: {
            'content-type': 'multipart/form-data'//声明是上传文件都后端接口
          },
          name: 'file',//文件key
          .....

2
TOP
切换版块