RESTful Web 服务 GET 文件

发布于 2024-11-05 09:06:46 字数 1712 浏览 4 评论 0原文

我有一个用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;
}

但现在我想实现一个服务来下载该文件。我可以得到一些关于如何执行此操作的帮助吗?

I have a RESTful service implemented in java to upload files. Here is the code:

@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;
}

But now I want to implement a service to download this file. Can I have some help on how to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

失去的东西太少 2024-11-12 09:06:46

也许是这样的?我从未使用过 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
}

Something like this maybe? I have never used jax-rs, so im not sure if my code would COMPUTE!

@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
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文