Can‘t read input file! 图片上传服务器后出现了读取报错

通常情况下,我们会将跟项目有关的配置文件和静态资源放在resources目录下,在需要时进行调用。

问题及解决方案:

在windows系统下,我们利用BufferedImage实现图片的读取有多种方法,例如:

第一种:
String path = this.getClass().getClassLoader().getResource("picture.jpg").getPath();
File file = new File(path);

 BufferedImage labelPic = null;
 try {
     labelPic = ImageIO.read(file);
 } catch (IOException e) {
     throw new RuntimeException(e);
 }
第二种:针对在resources目录下的文件
ClassPathResource resource = new ClassPathResource("picture.jpg");
File file = null;
try {
	file = resource.getFile();
} catch (IOException e) {
	throw new RuntimeException(e);
}

BufferedImage labelPic = null;
 try {
     labelPic = ImageIO.read(file);
 } catch (IOException e) {
     throw new RuntimeException(e);
 }
第三种:针对在resources目录下的文件(以流的形式)
ClassPathResource resource = new ClassPathResource("picture.jpg");
InputStream is = null;
try {
	is = resource.getInputStream();
} catch (IOException e) {
	throw new RuntimeException(e);
}

BufferedImage labelPic = null;
 try {
     labelPic = ImageIO.read(is);
 } catch (IOException e) {
     throw new RuntimeException(e);
 }

但是,在上传到服务器后,即在linux系统下代码在读取文件路径从而获取图片时,使用前两种方法都会出现报错:Can‘t read input file! 即无法成功读取文件。经测试此时 使用第三种方法,即使用InputStream 才可在项目上传到服务器后对资源实现读取操作。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示是指Keil无法打开某个文件。可能是文件不存在、文件路径错误、文件被占用等原因导致的。需要检查文件路径是否正确,文件是否存在,是否被其他程序占用等问题。如果无法解决,可以尝试重新安装Keil软件。 ### 回答2: Keil是一款嵌入式开发工具,常用于单片机程序的编写和调试,如STC、MCU、51和ARM等。当Keil在编译或下载程序时出现error 56: can't open file的错误信息,这意味着它无法在指定路径中找到所需的文件。通常情况下,这种错误可能在包含文件路径设置不正确的情况下出现,或者文件在修改后没有正确保存。 解决该问题的关键在于找到丢失的文件并添加正确的路径。以下是详细的解决步骤: 1. 检查文件路径- 首先,需要确认所需的文件是否存在于正确的路径中,如果文件不是在Keil的当前工作目录中,需要将文件放到正确的路径下。 2. 确定文件扩展名 - Keil工具默认只支持一些特定的文件扩展名,比如.c和.h。因此,在添加新文件时,需要使用正确的文件扩展名以帮助Keil识别。 3. 检查代码中的文件引用 - 另一个常见的错误来源是代码中的文件引用。例如,如果代码中引用的文件名有大小写拼写错误,或者因某些原因而被删除或重命名,就可能导致无法打开文件。 4. 重命名/保存文件 - 如果在代码编辑器中修改了某个文件,需要将其保存到正确的文件名和路径中。如果文件名和路径发生更改,则需要重命名文件并添加正确的所在目录。 总的来说,error 56: can't open file的错误可能是由许多原因引起的,但大多数原因都与文件路径和编码有关。解决方案可以通过检查路径设置、查找正确文件和检查代码中的文件引用来实现。为了使Keil更加高效,应注意保持项目文件的良好组织、清晰命名和正确的路径设置。 ### 回答3: Error 56是Keil中常见的错误,一般是由于两个原因导致的。 第一个原因是文件已被其他程序占用。Keil编译时需要重新打开文件,如果文件被其他程序占用,Keil就无法打开文件,从而导致该错误。解决方法是退出其他程序,或将文件复制到其他位置。 第二个原因是文件路径不正确。Keil编译时需要根据设定的路径查找文件,如果路径不正确,Keil就无法找到文件,从而导致该错误。解决方法是检查文件路径是否正确,或重新设定路径。 此外,还有一些其他可能的原因导致Error 56错误,如文件损坏、文件已被删除等。针对不同原因,需要采取不同解决方法。 如果文件损坏,可以尝试从备份中恢复文件,或重新下载文件;如果文件已被删除,可以尝试从回收站中找回文件,或者从其他设备中复制该文件。总之,解决Error 56错误的关键是找到根本原因,采取相应的解决方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值