【问题标题】:How to set uploaded jpg type to be recognised as "image/jpg" instead of "application/octet-stream"如何将上传的 jpg 类型设置为识别为“image/jpg”而不是“application/octet-stream”
【发布时间】: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/jpgimage/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


【解决方案1】:

我也遇到过同样的问题,但我无法更改 application/octet-stream 而是在服务器上处理它:

    $info = getimagesize($_FILES['pic']['tmp_name']);
    $type=$info['mime'];

此处类型将显示为 image/jpg 而不是 application/octet-stream。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 2020-08-01
    • 1970-01-01
    • 2023-03-22
    • 2012-04-16
    • 2018-09-11
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多