Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java有没有一种方法可以从一个没有';没有典型格式的扩展名吗?_Java_Html_Css_Bufferedimage_Javax.imageio - Fatal编程技术网

使用java有没有一种方法可以从一个没有';没有典型格式的扩展名吗?

使用java有没有一种方法可以从一个没有';没有典型格式的扩展名吗?,java,html,css,bufferedimage,javax.imageio,Java,Html,Css,Bufferedimage,Javax.imageio,随着整个新冠肺炎危机在世界各地发生,我决定开始一个乏味的小项目 我正试图在一个名为桌面模拟器的游戏中,为魔术聚会制作大量卡片的数字副本。。。我也有点生疏,但我想重新开始编程,为什么不呢 我现在所处的位置:我制作了一个程序(来源如下),目前该程序应该是从一个具有所有通用扩展的网站中提取所有图像 编辑:当我获取图像url时,它没有提示性的文件名。我不明白如何从图像呈现给我的方式中提取图像。由于某种原因,ImageIO.read(imgURL)返回null 源代码如下所示: 链接是什么拉了卡的形象。

随着整个新冠肺炎危机在世界各地发生,我决定开始一个乏味的小项目

我正试图在一个名为桌面模拟器的游戏中,为魔术聚会制作大量卡片的数字副本。。。我也有点生疏,但我想重新开始编程,为什么不呢

我现在所处的位置:我制作了一个程序(来源如下),目前该程序应该是从一个具有所有通用扩展的网站中提取所有图像

编辑:当我获取图像url时,它没有提示性的文件名。我不明白如何从图像呈现给我的方式中提取图像。由于某种原因,ImageIO.read(imgURL)返回null

源代码如下所示:

链接是什么拉了卡的形象。。。 我注意到格式是“.jfif”,我认为它是“.jpeg”的新版本。我直接从浏览器下载得到这种格式。 如何从页面中提取它

代码不是我自己的主意,这是从一位老朋友那里得到的

已编辑代码:

        HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();
        htmlKit.read(br, htmlDoc, 0);

        for (HTMLDocument.Iterator iterator = htmlDoc.getIterator(HTML.Tag.IMG); iterator.isValid(); iterator.next()) {
            AttributeSet attributes = iterator.getAttributes();
            String imgSrc = (String) attributes.getAttribute(HTML.Attribute.SRC);

            System.out.println(imgSrc);
            if (imgSrc != null && (imgSrc.toLowerCase().endsWith(".jpg") || (imgSrc.toLowerCase().endsWith("type=card") || (imgSrc.endsWith(".jfif")) || (imgSrc.endsWith(".png")) || (imgSrc.endsWith(".jpeg")) || (imgSrc.endsWith(".bmp")) || (imgSrc.endsWith(".ico"))))) {
                System.out.println(imgSrc);
                try {
                    downloadImage(webUrl, imgSrc);
                } catch (IOException ex) {
                    System.out.println(ex.getMessage());
                }
            }

        }
控制台输出:

../../Handlers/Image.ashx?multiverseid=482864&type=card
../../Handlers/Image.ashx?multiverseid=482826&type=card
../../Handlers/Image.ashx?multiverseid=482827&type=card
../../Handlers/Image.ashx?multiverseid=482793&type=card
../../Handlers/Image.ashx?multiverseid=482828&type=card
../../Handlers/Image.ashx?multiverseid=482700&type=card
../../Handlers/Image.ashx?multiverseid=484896&type=card
../../Handlers/Image.ashx?multiverseid=482829&type=card
../../Handlers/Image.ashx?multiverseid=484713&type=card
../../Handlers/Image.ashx?multiverseid=482701&type=card
../../Handlers/Image.ashx?multiverseid=482702&type=card
../../Handlers/Image.ashx?multiverseid=482771&type=card
../../Handlers/Image.ashx?multiverseid=482757&type=card
../../Handlers/Image.ashx?multiverseid=482703&type=card
../../Handlers/Image.ashx?multiverseid=482794&type=card
../../Handlers/Image.ashx?multiverseid=482865&type=card
../../Handlers/Image.ashx?multiverseid=482830&type=card
../../Handlers/Image.ashx?multiverseid=482831&type=card
../../Handlers/Image.ashx?multiverseid=482883&type=card
../../Handlers/Image.ashx?multiverseid=482704&type=card
../../Handlers/Image.ashx?multiverseid=484869&type=card
../../Handlers/Image.ashx?multiverseid=482884&type=card
../../Handlers/Image.ashx?multiverseid=482866&type=card
../../Handlers/Image.ashx?multiverseid=482705&type=card
../../Handlers/Image.ashx?multiverseid=482885&type=card
../../Handlers/Image.ashx?multiverseid=482795&type=card
../../Handlers/Image.ashx?multiverseid=482796&type=card
../../Handlers/Image.ashx?multiverseid=482886&type=card
../../Handlers/Image.ashx?multiverseid=482887&type=card
../../Handlers/Image.ashx?multiverseid=484914&type=card
../../Handlers/Image.ashx?multiverseid=484887&type=card
../../Handlers/Image.ashx?multiverseid=482888&type=card
../../Handlers/Image.ashx?multiverseid=482867&type=card
../../Handlers/Image.ashx?multiverseid=482706&type=card
../../Handlers/Image.ashx?multiverseid=484711&type=card
../../Handlers/Image.ashx?multiverseid=482758&type=card
../../Handlers/Image.ashx?multiverseid=484870&type=card
../../Handlers/Image.ashx?multiverseid=482889&type=card
../../Handlers/Image.ashx?multiverseid=484905&type=card
../../Handlers/Image.ashx?multiverseid=482772&type=card
../../Handlers/Image.ashx?multiverseid=484871&type=card
../../Handlers/Image.ashx?multiverseid=482707&type=card
../../Handlers/Image.ashx?multiverseid=482708&type=card
../../Handlers/Image.ashx?multiverseid=482709&type=card
../../Handlers/Image.ashx?multiverseid=482890&type=card
../../Handlers/Image.ashx?multiverseid=484712&type=card
../../Handlers/Image.ashx?multiverseid=482773&type=card
../../Handlers/Image.ashx?multiverseid=482774&type=card
../../Handlers/Image.ashx?multiverseid=482775&type=card
../../Handlers/Image.ashx?multiverseid=482736&type=card
../../Handlers/Image.ashx?multiverseid=482891&type=card
../../Handlers/Image.ashx?multiverseid=482710&type=card
../../Handlers/Image.ashx?multiverseid=482711&type=card
../../Handlers/Image.ashx?multiverseid=482832&type=card
../../Handlers/Image.ashx?multiverseid=482776&type=card
../../Handlers/Image.ashx?multiverseid=482892&type=card
../../Handlers/Image.ashx?multiverseid=482868&type=card
../../Handlers/Image.ashx?multiverseid=482777&type=card
../../Handlers/Image.ashx?multiverseid=482833&type=card
../../Handlers/Image.ashx?multiverseid=482834&type=card
../../Handlers/Image.ashx?multiverseid=482797&type=card
../../Handlers/Image.ashx?multiverseid=484868&type=card
../../Handlers/Image.ashx?multiverseid=484878&type=card
../../Handlers/Image.ashx?multiverseid=482798&type=card
../../Handlers/Image.ashx?multiverseid=482737&type=card
../../Handlers/Image.ashx?multiverseid=484906&type=card
../../Handlers/Image.ashx?multiverseid=484888&type=card
../../Handlers/Image.ashx?multiverseid=482893&type=card
../../Handlers/Image.ashx?multiverseid=482835&type=card
../../Handlers/Image.ashx?multiverseid=484889&type=card
../../Handlers/Image.ashx?multiverseid=482759&type=card
../../Handlers/Image.ashx?multiverseid=482712&type=card
../../Handlers/Image.ashx?multiverseid=482836&type=card
../../Handlers/Image.ashx?multiverseid=484879&type=card
../../Handlers/Image.ashx?multiverseid=482713&type=card
../../Handlers/Image.ashx?multiverseid=484897&type=card
../../Handlers/Image.ashx?multiverseid=482714&type=card
../../Handlers/Image.ashx?multiverseid=482894&type=card
../../Handlers/Image.ashx?multiverseid=482895&type=card
../../Handlers/Image.ashx?multiverseid=482896&type=card
../../Handlers/Image.ashx?multiverseid=482897&type=card
../../Handlers/Image.ashx?multiverseid=482837&type=card
../../Handlers/Image.ashx?multiverseid=482715&type=card
../../Handlers/Image.ashx?multiverseid=482898&type=card
../../Handlers/Image.ashx?multiverseid=482760&type=card
../../Handlers/Image.ashx?multiverseid=484872&type=card
../../Handlers/Image.ashx?multiverseid=482838&type=card
../../Handlers/Image.ashx?multiverseid=482738&type=card
../../Handlers/Image.ashx?multiverseid=484890&type=card
../../Handlers/Image.ashx?multiverseid=482899&type=card
../../Handlers/Image.ashx?multiverseid=482778&type=card
../../Handlers/Image.ashx?multiverseid=482839&type=card
../../Handlers/Image.ashx?multiverseid=482900&type=card
../../Handlers/Image.ashx?multiverseid=484880&type=card
../../Handlers/Image.ashx?multiverseid=482779&type=card
../../Handlers/Image.ashx?multiverseid=482716&type=card
../../Handlers/Image.ashx?multiverseid=484881&type=card
../../Handlers/Image.ashx?multiverseid=482761&type=card
../../Handlers/Image.ashx?multiverseid=482799&type=card
../../Handlers/Image.ashx?multiverseid=482901&type=card
/images/Redesign/Shadow.png
//media.wizards.com/2018/images/magic/gatherer/footerbanner.jpg
/images/Redesign/hasbro_logo.png
/images/Redesign/wizards_logo.png

我不知道您在哪里看到了与该链接相关的
.jfif
,因为我在任何地方都看不到

我看到的是一个链接URL:
https://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=482864&type=card

在web浏览器(FireFox for me)中打开时,我看到服务器响应具有以下HTTP头:

缓存控制:公共
内容类型:图像/jpeg
到期时间:2021年4月16日星期五04:30:35 GMT
服务器:Microsoft IIS/8.5
X-AspNet-Version:2.0.50727
X-Powered-By:ASP.NET
日期:2020年4月16日星期四04:30:35 GMT
内容长度:170170
重要的部分是
内容类型
,其值为
图像/jpeg
,告诉您内容是jpeg图像

不幸的是,服务器没有提供提示性的文件名,该文件名应该是这样的头文件:

内容配置:附件;filename=“filename.jpg”

如果没有服务器的建议,并且您知道并理解URL,您可以编写代码,从URL和
内容类型
标题中命名文件,命名文件
card482864.jpeg

我只需从浏览器下载图像即可获得格式。你能举个例子说明如何从URL中命名文件吗?我只是在字符串中的某个地方加上.jpeg吗?@HarleyFioretti查看URL。您是否在某处看到值
482864
?正如我所说的,因为您知道URL,所以可以编写代码从URL中提取这两个值来构建文件名,并将文件扩展名设置为
.jpeg
,因为
内容类型
头是
图像/jpeg
。我认为我的问题也在于使用ImageIO。png文件没有下载either@HarleyFioretti实际上,我的web浏览器说文件是PNG,尽管
内容类型
图像/jpeg
。Web浏览器知道Web服务器不可靠,所以它们会自动检测很多东西。单击链接以查看图像,然后右键单击并选择“图像信息”。我的浏览器显示
类型:PNG图像
尺寸:265px 370px
这些是正确的尺寸。Microsoft edge只想将图像另存为.jfif,因此我的假设是该格式,但可能浏览器进行了一个看不见的转换,我无法用当前代码复制该转换…这不是一个足够精确的错误描述,我们无法帮助您。什么不起作用?它怎么不起作用?你的代码有什么问题?你收到错误信息了吗?错误消息是什么?你得到的结果不是你期望的结果吗?你期望得到什么样的结果?为什么?你会得到什么样的结果?两者有什么不同?你观察到的行为是否不是期望的行为?期望的行为是什么?为什么?观察到的行为是什么?它们有什么不同?另外,请确保构建一个。请注意,这三个词都很重要:它应该只是一个示例,您不应该发布整个实际代码,而应该创建一个简单的示例来演示您的问题。此外,它应该是最小的,也就是说,它不应该包含任何不是证明问题绝对需要的内容。(大多数初学者的问题可以用不到5行简单的代码来演示。)而且它应该是可复制的,这意味着如果我复制粘贴并运行代码,我应该看到与您看到的完全相同的问题。我想要的结果是下载给定URL上以.jpeg或.png结尾的所有图像。令我惊讶的是,它没有下载任何内容,但不会产生错误。它所做的就是吐出文件名。我将把它编辑成我认为最有针对性的代码部分。我真的不知道使用堆栈溢出的约定,所以我道歉。
../../Handlers/Image.ashx?multiverseid=482864&type=card
../../Handlers/Image.ashx?multiverseid=482826&type=card
../../Handlers/Image.ashx?multiverseid=482827&type=card
../../Handlers/Image.ashx?multiverseid=482793&type=card
../../Handlers/Image.ashx?multiverseid=482828&type=card
../../Handlers/Image.ashx?multiverseid=482700&type=card
../../Handlers/Image.ashx?multiverseid=484896&type=card
../../Handlers/Image.ashx?multiverseid=482829&type=card
../../Handlers/Image.ashx?multiverseid=484713&type=card
../../Handlers/Image.ashx?multiverseid=482701&type=card
../../Handlers/Image.ashx?multiverseid=482702&type=card
../../Handlers/Image.ashx?multiverseid=482771&type=card
../../Handlers/Image.ashx?multiverseid=482757&type=card
../../Handlers/Image.ashx?multiverseid=482703&type=card
../../Handlers/Image.ashx?multiverseid=482794&type=card
../../Handlers/Image.ashx?multiverseid=482865&type=card
../../Handlers/Image.ashx?multiverseid=482830&type=card
../../Handlers/Image.ashx?multiverseid=482831&type=card
../../Handlers/Image.ashx?multiverseid=482883&type=card
../../Handlers/Image.ashx?multiverseid=482704&type=card
../../Handlers/Image.ashx?multiverseid=484869&type=card
../../Handlers/Image.ashx?multiverseid=482884&type=card
../../Handlers/Image.ashx?multiverseid=482866&type=card
../../Handlers/Image.ashx?multiverseid=482705&type=card
../../Handlers/Image.ashx?multiverseid=482885&type=card
../../Handlers/Image.ashx?multiverseid=482795&type=card
../../Handlers/Image.ashx?multiverseid=482796&type=card
../../Handlers/Image.ashx?multiverseid=482886&type=card
../../Handlers/Image.ashx?multiverseid=482887&type=card
../../Handlers/Image.ashx?multiverseid=484914&type=card
../../Handlers/Image.ashx?multiverseid=484887&type=card
../../Handlers/Image.ashx?multiverseid=482888&type=card
../../Handlers/Image.ashx?multiverseid=482867&type=card
../../Handlers/Image.ashx?multiverseid=482706&type=card
../../Handlers/Image.ashx?multiverseid=484711&type=card
../../Handlers/Image.ashx?multiverseid=482758&type=card
../../Handlers/Image.ashx?multiverseid=484870&type=card
../../Handlers/Image.ashx?multiverseid=482889&type=card
../../Handlers/Image.ashx?multiverseid=484905&type=card
../../Handlers/Image.ashx?multiverseid=482772&type=card
../../Handlers/Image.ashx?multiverseid=484871&type=card
../../Handlers/Image.ashx?multiverseid=482707&type=card
../../Handlers/Image.ashx?multiverseid=482708&type=card
../../Handlers/Image.ashx?multiverseid=482709&type=card
../../Handlers/Image.ashx?multiverseid=482890&type=card
../../Handlers/Image.ashx?multiverseid=484712&type=card
../../Handlers/Image.ashx?multiverseid=482773&type=card
../../Handlers/Image.ashx?multiverseid=482774&type=card
../../Handlers/Image.ashx?multiverseid=482775&type=card
../../Handlers/Image.ashx?multiverseid=482736&type=card
../../Handlers/Image.ashx?multiverseid=482891&type=card
../../Handlers/Image.ashx?multiverseid=482710&type=card
../../Handlers/Image.ashx?multiverseid=482711&type=card
../../Handlers/Image.ashx?multiverseid=482832&type=card
../../Handlers/Image.ashx?multiverseid=482776&type=card
../../Handlers/Image.ashx?multiverseid=482892&type=card
../../Handlers/Image.ashx?multiverseid=482868&type=card
../../Handlers/Image.ashx?multiverseid=482777&type=card
../../Handlers/Image.ashx?multiverseid=482833&type=card
../../Handlers/Image.ashx?multiverseid=482834&type=card
../../Handlers/Image.ashx?multiverseid=482797&type=card
../../Handlers/Image.ashx?multiverseid=484868&type=card
../../Handlers/Image.ashx?multiverseid=484878&type=card
../../Handlers/Image.ashx?multiverseid=482798&type=card
../../Handlers/Image.ashx?multiverseid=482737&type=card
../../Handlers/Image.ashx?multiverseid=484906&type=card
../../Handlers/Image.ashx?multiverseid=484888&type=card
../../Handlers/Image.ashx?multiverseid=482893&type=card
../../Handlers/Image.ashx?multiverseid=482835&type=card
../../Handlers/Image.ashx?multiverseid=484889&type=card
../../Handlers/Image.ashx?multiverseid=482759&type=card
../../Handlers/Image.ashx?multiverseid=482712&type=card
../../Handlers/Image.ashx?multiverseid=482836&type=card
../../Handlers/Image.ashx?multiverseid=484879&type=card
../../Handlers/Image.ashx?multiverseid=482713&type=card
../../Handlers/Image.ashx?multiverseid=484897&type=card
../../Handlers/Image.ashx?multiverseid=482714&type=card
../../Handlers/Image.ashx?multiverseid=482894&type=card
../../Handlers/Image.ashx?multiverseid=482895&type=card
../../Handlers/Image.ashx?multiverseid=482896&type=card
../../Handlers/Image.ashx?multiverseid=482897&type=card
../../Handlers/Image.ashx?multiverseid=482837&type=card
../../Handlers/Image.ashx?multiverseid=482715&type=card
../../Handlers/Image.ashx?multiverseid=482898&type=card
../../Handlers/Image.ashx?multiverseid=482760&type=card
../../Handlers/Image.ashx?multiverseid=484872&type=card
../../Handlers/Image.ashx?multiverseid=482838&type=card
../../Handlers/Image.ashx?multiverseid=482738&type=card
../../Handlers/Image.ashx?multiverseid=484890&type=card
../../Handlers/Image.ashx?multiverseid=482899&type=card
../../Handlers/Image.ashx?multiverseid=482778&type=card
../../Handlers/Image.ashx?multiverseid=482839&type=card
../../Handlers/Image.ashx?multiverseid=482900&type=card
../../Handlers/Image.ashx?multiverseid=484880&type=card
../../Handlers/Image.ashx?multiverseid=482779&type=card
../../Handlers/Image.ashx?multiverseid=482716&type=card
../../Handlers/Image.ashx?multiverseid=484881&type=card
../../Handlers/Image.ashx?multiverseid=482761&type=card
../../Handlers/Image.ashx?multiverseid=482799&type=card
../../Handlers/Image.ashx?multiverseid=482901&type=card
/images/Redesign/Shadow.png
//media.wizards.com/2018/images/magic/gatherer/footerbanner.jpg
/images/Redesign/hasbro_logo.png
/images/Redesign/wizards_logo.png