Java 如何从<;读取图像;输入类型=";文件"&燃气轮机;并使用servlet在另一个jsp页面上编写/显示它?

Java 如何从<;读取图像;输入类型=";文件"&燃气轮机;并使用servlet在另一个jsp页面上编写/显示它?,java,jsp,servlets,Java,Jsp,Servlets,我有一个网页,通过 我希望在提交表单时,在servlet的帮助下,图像显示在另一个页面上,.jsp 如果我不能准确地做到这一点(将图像直接从一个jsp传递到另一个jsp),那么如何通过在磁盘上本地写入文件并通过标记在jsp文件上读取来做到这一点?该文件可以存储在我磁盘上的任何位置(例如C:\Sample),所以我把它放在哪里并不重要。谢谢大家! 这里有一个从表单上传图像的代码示例。请根据需要修改操作和属性 <form:form modelAttribute="modelClass" act

我有一个网页,通过

我希望在提交表单时,在servlet的帮助下,图像显示在另一个页面上,
.jsp


如果我不能准确地做到这一点(将图像直接从一个jsp传递到另一个jsp),那么如何通过在磁盘上本地写入文件并通过
标记在jsp文件上读取来做到这一点?该文件可以存储在我磁盘上的任何位置(例如C:\Sample),所以我把它放在哪里并不重要。谢谢大家!

这里有一个从表单上传图像的代码示例。请根据需要修改操作和属性

<form:form modelAttribute="modelClass" action="save" method="POST" enctype="multipart/form-data">
    <div class="form-group">
        <form:input type="file" path="productLandscapeImage" class="form-control" name="productLandscapeImage" title="Image" value=""/>
        <form:errors path="productLandscapeImage" cssClass="error-tip" element="div" />
    </div>
</form:form>
在控制器类中

@RequestMapping(value = { "form/save" }, method = RequestMethod.POST)
public String saveProduct(@Valid @ModelAttribute("modelClass") ModelClass modelClass
        BindingResult bindingResult, Model model, HttpServletRequest httpServletRequest) {

     uploadImages(modelClass, httpServletRequest);

}

private void uploadImages(ModelClass modelClass, HttpServletRequest httpServletRequest) {
    if (modelClass.getProductLandscapeImage() != null
        && !modelClass.getProductLandscapeImage().getOriginalFilename().isEmpty()) {
        String realPath = httpServletRequest.getSession().getServletContext().getRealPath("/resources/images/categories/");
        if (!new File(realPath).exists()) {
            new File(realPath).mkdirs();
        }
        try {
            modelClass.getProductLandscapeImage().transferTo(new File(realPath + ".jpg"));
        } catch (IllegalStateException | IOException e) {
            // log error
        }
    }
}
在DispatcherServletInitializer类中添加以下方法

public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{    
        /**
         * maxFileSize: Maximum Size of the file to be uploaded
         * maxRequestSize: Maximum Size of the multipart/form-data request
         * fileSizeThreshold: Size threshold after which the file will be written to disk
         * 
         * The Size are in bytes
         * 1024  * 1024  *  1 = 1MB
         * 1024  * 1024  *  2 = 2MB
         * 1024  * 1024  *  4 = 4MB
         */
        @Override
        protected void customizeRegistration(Dynamic registration) {
            MultipartConfigElement multipartConfigElement = new MultipartConfigElement("/", 2097152, 8388608, 1048576);
            registration.setMultipartConfig(multipartConfigElement);
        }
}
在Web配置类中添加以下bean

@Configuration
@ComponentScan(basePackages = {"com.package"})
@EnableWebMvc
public class SpringWebConfiguration implements WebMvcConfigurer{
        @Bean
        public MultipartResolver multipartResolver() {
            return new StandardServletMultipartResolver();
        }
}
有关完整代码,请参阅此链接

这是否回答了您的问题@ShivamPuri我认为除了
InputStream is=newfileinputstream(newfile(“../files/backPetals.jpg”))之外,它回答了编写部分的问题。我需要从
读取文件,并且
字节[]buf=新字节[32*1024]设置为上传图像的特定字节。顺便说一句,谢谢你的帮助!谢谢你的回答。对不起,我还是个新手。我仍然不确定在哪里写这些代码。我是否应该为您提到的每个类创建新类?谢谢你,我再一次很抱歉没有清楚地理解你。
@Configuration
@ComponentScan(basePackages = {"com.package"})
@EnableWebMvc
public class SpringWebConfiguration implements WebMvcConfigurer{
        @Bean
        public MultipartResolver multipartResolver() {
            return new StandardServletMultipartResolver();
        }
}