在java中使用OutputStream将图像写入特定文件夹
我想将上传的图像写入某个文件夹,但听说第一次尝试时,我想将其写入使用“request.getRealPath(“”)获得的相同路径,在执行程序流后,运行顺利,没有出现任何错误,但我无法找到它写入的图像。。。!。当我通过调试程序进行检查时,我知道了一些我找不到的奇怪路径,即 “/home/Software/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/elibrary/roronoa-zoro-wallps.jpg” 我只能找到“/home/Software/workspace/”和“last=>/elibrary/”是我的项目名称 目前我正在使用SpringMVC3.2 这是我的控制器代码在java中使用OutputStream将图像写入特定文件夹,java,spring-mvc,Java,Spring Mvc,我想将上传的图像写入某个文件夹,但听说第一次尝试时,我想将其写入使用“request.getRealPath(“”)获得的相同路径,在执行程序流后,运行顺利,没有出现任何错误,但我无法找到它写入的图像。。。!。当我通过调试程序进行检查时,我知道了一些我找不到的奇怪路径,即 “/home/Software/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/elibrary/roronoa-zoro-wa
@RequestMapping(value = "/catalogue/catalogueImageUpload.action",method=RequestMethod.POST)
public void getimportedImage(USerDetails uploadItem,HttpServletRequest request) {
try {
MultipartFile file = uploadItem.getFileData();
String fileName = null;
InputStream inputStream = null;
OutputStream outputStream = null;
inputStream = file.getInputStream();
fileName = request.getRealPath("") + file.getOriginalFilename();
System.out.println(request.getRealPath("") + file.getOriginalFilename());
outputStream = new FileOutputStream(file.getOriginalFilename());
int readBytes = 0;
byte[] buffer = new byte[40000];
while ((readBytes = inputStream.read(buffer, 0, 10000)) != -1) {
outputStream.write(buffer, 0, readBytes);
}
outputStream.close();
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
我想要什么
=>我想在我能够找到的特定文件夹中写入图像,它可能在项目工作空间中,或者任何驱动器中,或者在项目中的某个文件夹中,比如说图像文件夹,好了……现在开始
- getimportedImage不符合标准命名约定,它应该是getimportedImage
- 您打开一个文件流进行写入,但不尝试/最终关闭它。如果您的代码失败,可能会导致文件被锁定。(输入流btw相同)
- 默认情况下,在*nix系统上,名称中带前导“.”的文件/文件夹是隐藏的。您可以在文件资源管理器的位置栏中键入路径的全名,也可以启用隐藏文件(在nautilus中,按ctrl+H)
- 您应该而不是取决于上传文件的路径,因为您知道它可能是/tmp,由*nix系统自动清除。您应该配置(可能使用适当的默认值)要使用的路径
- 为什么您的缓冲区有40000字节大,但一次只读取10000字节
…您是否已将操作系统设置为显示隐藏文件夹?是的,现在我已删除了请求。getRealPath(“”),现在我可以在eclipse文件夹中找到映像如何仅在项目中写入映像