【发布时间】:2014-03-27 00:43:03
【问题描述】:
我正在使用 Loopj 的 android-async-http 这是我的代码:
File file = new File("sdcard/food.jpg");
params.put("image", file);
我的问题是,php 服务器以application/octet-stream 而不是image/jpg 接收图像。我需要它是image/jpg,因为我的服务器人员白名单上传了image/jpg、image/png 等类型的文件。
更新 1
我尝试向应用程序添加内容类型参数。但是,php 代码仍然将其识别为application/octet-stream。
params.put("image", new FileInputStream(file), "image/jpg");
更新 2
由于我需要继续该项目,我们现在要做的是建议服务器人员使用 exif 实现 mime 嗅探。在 php 中,我们使用 exif_imagetype()。一切都很好,到目前为止。在我们找到可在 android 中实现的解决方案之前,我会一直保持这个问题。
【问题讨论】:
-
您是否尝试过指定文件名而不是 mime 类型?喜欢
params.put("image", new FileInputStream(file), "food.jpg"); -
还是不行
-
抱歉我觉得应该是
params.put("image", new FileInputStream(file), "food.jpg", "image/jpg");github.com/loopj/android-async-http/blob/master/library/src/… -
或者根据api doc也可以是
params.put("image", new File("sdcard/food.jpg"), "image/jpg"); -
我也已经这样做了:(
标签: android loopj android-async-http