我得到“系统无法找到指定的路径”。当我尝试将图像上传到资源内的项目文件夹时。 这是我的项目结构:
|项目 | SRC |主 |资源 | META-INF.resources |图像
我已将路径定义为
String path = "\\resources\\images\\" + imageName; File file = new File(path );
try {
InputStream is = event.getFile().getInputstream();
OutputStream out = new FileOutputStream(path );
byte buf[] = new byte[1024];
int len;
while ((len = is.read(buf)) > 0)
out.write(buf, 0, len);
is.close();
out.close();
} catch (Exception e) {
System.out.println(e);
}
META-INF.resources目录下图像文件夹的确切路径是什么?
答案 0 :(得分:0)
以下应该可以正常工作:
//App.java
String path = "\\META-INF.resources\\images\\" + imageName;
InputStream is = App.class.getClassLoader().getResourceAsStream(
path);
在坚果shell中,使用“getClassLoader()。getResourceAsStream()”而不是FileInputStream或FileOutputStream。
答案 1 :(得分:0)
以下为我工作。 在application.properties中,我将路径字符串定义为:
image.path = src/main/resources/META-INF/resources/images/uploads/
这是我在类文件中的uploadImage函数。
@Autowired
private Environment environment;
public String uploadImg(FileUploadEvent event, String imagePrefix) {
String path = environment.getProperty("image.path");
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmss");
String name = fmt.format(new Date())
+ event.getFile().getFileName().substring(
event.getFile().getFileName().lastIndexOf('.'));
name = String.format("%s%s" ,imagePrefix ,name );
String finalPath = String.format("%s%s" ,path ,name);
System.out.println("image is going to save @ " +finalPath);
File file = new File(finalPath).getAbsoluteFile();
try {
InputStream is = event.getFile().getInputstream();
OutputStream out = new FileOutputStream(file);
byte buf[] = new byte[1024];
int len;
while ((len = is.read(buf)) > 0)
out.write(buf, 0, len);
is.close();
out.close();
} catch (Exception e) {
System.out.println(e);
}
return name;
}
我不确定它是否适用于生产。基本上我得到项目的绝对路径,然后追加我相对提取的路径。如果我错了,请纠正我。