java - Toolkit.getImage() 的正确路径是什么?

标签 java awt

我需要上传图像文件并在我的 JSF 网络应用程序中为上传的文件生成缩略图。原图保存在服务器的/home/myname/tomcat/webapps/uploads,缩略图保存在/home/myname/tomcat/webapps/uploads/thumbs。我正在使用从 philreeve.com 复制的缩略图生成器类.

BalusC 的帮助下,我已成功上传文件.但是使用 Toolkit.getImage(),我无法访问图像。

我使用了上传文件的绝对路径,像这样:

inFilename = file.getAbsolutePath();

缩略图生成器的相关代码是:

public static String createThumbnail(String inFilename, String outFilename, int largestDimension) {
    ...
    Image inImage = Toolkit.getDefaultToolkit().getImage(inFilename);
    if (inImage.getWidth(null) == -1 || inImage.getHeight(null) == -1) {
        return "Error loading file: \"" + new File(inFilename).getAbsolutePath() + "\"";
    }
    ...
}

由于我已经在使用绝对路径,所以我不明白为什么它不起作用。我还为 inFilename 使用了以下值,但我总是收到“错误加载文件...”。

  • /home/myname/tomcat/webapps/uploads/filename.ext
  • /uploads/filename.ext

但我确实检查了目录,图像那里。 (我使用 /home/myname/tomcat/webapps/uploads/filename.ext 上传,它有效。)该目录中图像的正确路径是什么?谢谢。

更新

我通过使用以下代码获得了工作代码:

Image inImage = ImageIO.read(new File(inFilename));

我仍然不明白为什么 Toolkit.getImage() 不起作用。

最佳答案

您确定它是 JPEG 文件吗?使用图片查看器确保文件在上传过程中没有发生任何问题(或者它是一张图片)。

此外,使用 new File(inFilename).exists() 确保路径正确。我还建议在错误消息中打印 new File(inFilename).getAbsolutePath(),因为相对路径可能会伤害您。

也就是说,其余代码看起来是正确的。

关于java - Toolkit.getImage() 的正确路径是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7319036/

相关文章:

java - 启动相机导致 Android 崩溃

java - 在 sql 中执行计算与在您的应用程序中执行计算的优缺点是什么

java - 如何使用键绑定(bind)使矩形在屏幕上移动?

java - 使用 Java 在 GUI 编程中混合使用 awt 和 swing

java - Spring security Oauth 2 使用ajax登录和表单登录

java - HttpAttributeListener 不起作用?

java - 如何处理卡片 View 中不同的按钮 onclick 并传递 Intent ?

Java AWT : Setting background of Canvas changes the background for the whole frame

Java ScrollPane 和 Canvas - 将 Canvas 锁定为 JScrollPane 大小

java - 将 JFrame 中的所有组件调整为窗口的实际大小