2

所以我有一个 wikimedia commons URL(它实际上只是实际图像的包装),如下所示: https: //commons.wikimedia.org/wiki/File:Nine_inch_nails_-_ Staples_Center_- 11-8-13 (10755555065_16053de956_o)。 jpg

如果我转到该页面,我可以看到实际图像位于: https: //upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Nine_inch_nails_-_Staples_Center_- 11-8-13 %2810755555065_16053de956_o%29 .jpg/800px-Nine_inch_nails_-_Staples_Center_- 11-8-13 %2810755555065_16053de956_o%29.jpg

我想获取实际的文件,以便可以在<img>标签中使用它。

我怀疑他们会给你一个 url 参数来返回位置,但我找不到任何关于它的信息。

提前致谢。

编辑:

我想我在这里找到了答案: https ://commons.wikimedia.org/wiki/Commons:FAQ#What_are_the_strangely_named_components_in_file_paths.3F

上传中的奇怪路径是来自文件名的 MD5 哈希的字母。

4

1 回答 1

1

想通了,这是我写的一个小java来正确地做到这一点:

public static String convertWikimediaCommonsURLToImageUrl(String wmLink) {  

    String fileName = wmLink.split("File:")[1];

    String md5 = Hashing.md5().hashString(fileName, Charsets.UTF_8).toString();

    String weirdPathString = md5.substring(0, 1) + "/" + md5.substring(0, 2) + "/";
    String imageURL = "https://upload.wikimedia.org/wikipedia/commons/" + weirdPathString + 
            fileName;

    return imageURL;
}
于 2015-06-11T16:26:10.883 回答