Java RESTfulWebService获取文件

Java RESTfulWebService获取文件,java,rest,jax-rs,Java,Rest,Jax Rs,我用java实现了一个RESTful服务来上传文件。代码如下: @POST @Produces("text/plain") public String uploadFile(@Context HttpServletRequest request) { String resultStatus = "fileupload error"; String fileRepository = "/MobilityPatterns/"; if (ServletFileUpload.

我用java实现了一个RESTful服务来上传文件。代码如下:

@POST
@Produces("text/plain")
public String uploadFile(@Context HttpServletRequest request) {

    String resultStatus = "fileupload error";
    String fileRepository = "/MobilityPatterns/";

    if (ServletFileUpload.isMultipartContent(request)) {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(1073741824); //Limits the max file size (bytes)
        List<FileItem> items = null;
        try {
            items = upload.parseRequest(request);
        } catch (FileUploadException e) {
            e.printStackTrace();
        }

        String username = null;
        for(FileItem item : items){
            if(item.isFormField() && item.getFieldName().equalsIgnoreCase("username")){
                username = item.getString();
            } else if (!item.isFormField() && item.getSize() > 0) {
                try {
                    String filename = item.getName();

                    String dateFormat = "yyyyMMdd_HHmmss";
                    Calendar cal = Calendar.getInstance();
                    SimpleDateFormat dateFormatter = new SimpleDateFormat(dateFormat);
                    String date =  dateFormatter.format(cal.getTime());

                    item.write(new File(fileRepository + username + "_" + date + "_" + filename));
                    resultStatus = "fileupload success";
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
    return resultStatus;
}
@POST
@生成(“文本/纯文本”)
公共字符串上载文件(@Context-HttpServletRequest){
字符串resultStatus=“fileupload error”;
字符串fileRepository=“/MobilityPatterns/”;
if(ServletFileUpload.isMultipartContent(请求)){
FileItemFactory=new DiskFileItemFactory();
ServletFileUpload upload=新的ServletFileUpload(工厂);
upload.setSizeMax(1073741824);//限制最大文件大小(字节)
列表项=空;
试一试{
items=upload.parseRequest(请求);
}捕获(文件上载异常){
e、 printStackTrace();
}
字符串username=null;
用于(文件项:项){
if(item.isFormField()&&item.getFieldName().equalsIgnoreCase(“用户名”)){
username=item.getString();
}如果(!item.isFormField()&&item.getSize()>0),则为else{
试一试{
字符串文件名=item.getName();
字符串dateFormat=“yyyyMMdd_HHmmss”;
Calendar cal=Calendar.getInstance();
SimpleDataFormat dateFormatter=新的SimpleDataFormat(dateFormat);
字符串日期=dateFormatter.format(cal.getTime());
item.write(新文件(fileRepository+用户名+日期+文件名));
resultStatus=“文件上传成功”;
}捕获(例外e){
e、 printStackTrace();
}
}
}
}
返回结果状态;
}

但是现在我想实现一个服务来下载这个文件。我能得到一些关于如何做的帮助吗?

也许像这样的东西?我从未使用过jax rs,所以我不确定我的代码是否可以计算

@GET
@Produces("application/x-octet-stream")
public void downloadFile(@Context HttpServletRequest request,@Context HttpServletResponse response) {
    //fetch the file id from request object
    //get File using file id
    //dump file contents to response
}