如何在Jersey中使用两个上载的输入文本文件在REST中处理两个不同的文本文件?

时间:2018-10-25 05:26:27

标签: rest jersey-2.0

我需要使用REST ws(Jersey)分别读取两个上载的text / csv文件,该文件描述了一个示例片段。

    @Path("bcmfileinput")
    public class BCMFileInputCheckResource{

        @POST
        @Path("survivour1")
        @Consumes(MediaType.MULTIPART_FORM_DATA)
        @Produces(MediaType.TEXT_PLAIN) 
        public String getSurvivour1File(@FormDataParam(value="eaiTradesFile")InputStream eaiTradesStream,@FormDataParam(value="outsandingFile")InputStream outTradesStream) throws IOException{
            //writing eaiTradesStream to the file to test
            BufferedReader br = new BufferedReader(new InputStreamReader(eaiTradesStream,"UTF-8"));
            PrintWriter f=new PrintWriter(new File("H:/abc.csv"));
            String line="";
            while((line=br.readLine())!=null  ){
                f.write(line);
                f.println();
            }
            f.flush();
            f.close();
    return "H:/abc.csv";
        }

还有一个示例html页面:

<html>
<body>
    <h2>BCM File Upload</h2>

    <form action="http://localhost:9080/swiftmx/public/bcmfileinput/survivour1" method="post" enctype="multipart/form-data">

       <p>
        Select Eai Positions file : <input type="file" name="eaiTradesFile" size="45" />
        <br>
        <br>
        Select Outstanding  file : <input type="file" name="outsandingFile" size="45" />
        </p>

       <input type="submit" value="Upload It" />
    </form>

</body>
</html>

使用上面的代码,当我将流中的任何一个写入文件时,两个文件数据都将被打印。 但是,我的需求是需要将eaiTradesFile绑定到第一输入流,将outsandingFile文件绑定到第二输入流,因为我必须为每个文件分别处理它们。

Been谷歌搜索未能找到适合我要求的解决方案。 因此,任何解决方案都是一样的,谢谢大家!!!

0 个答案:

没有答案