SAE java应用读写文件(TmpFS和Storage)

摘要:
最近,许多Java用户提出了sae读写本地文件的问题。在这里,结合TmpFS和存储服务,我们将讨论Java应用程序应该如何读取和写入文件。TmpFS是一个临时读写路径,但请求将在请求后被销毁。出于安全原因,sae限制了应用程序的本地IO操作,但本地操作必须存在,因此sae提供了TmpFS来处理这些操作。如果需要持久化文件怎么办?当然,使用了存储。下面是一个结合存储和TmpFS来编写文件的示例。第一

近期不少java用户都在提sae读写本地文件的问题,在这里结合TmpFS和Storage服务说说java应用应该如何读写文件
TmpFS是一个供应用临时读写的路径,但请求过后将被销毁。出于安全考虑,sae限制了应用对本地IO操作,但本地操作肯定是存在的,所以sae提供了TmpFS来应对。如果需要将文件持久化怎么办呢?当然是使用storage。

下面给出一个例子结合storage和TmpFS来写文件
首先使用common-upload将文件上传至TmpFS下,之后再使用SaeStorage对象将文件存储至storage中。
这里只是用于演示storage结合TmpFS使用,如果单纯使用storage服务大可不必这么麻烦,直接调用SaeStorage的write方法即可。

public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("gbk");
        PrintWriter out = response.getWriter();
        // 使用SaeUserInfo拿到改请求可写的路径
        String realPath = SaeUserInfo.getSaeTmpPath() + "/";
        try {
            // 使用common-upload上传文件至这个路径中
            boolean isMultipart = ServletFileUpload.isMultipartContent(request);
            if (!isMultipart)
                return;
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setFileSizeMax(1024 * 1024);
            List<FileItem> items = null;
            items = upload.parseRequest(request);
            for (FileItem item : items) {
                if (!item.isFormField()) {
                    File fullFile = new File(item.getName());
                    File uploadFile = new File(realPath, fullFile.getName());
                    item.write(uploadFile);
                    // 上传完毕后 使用SaeStorage往storage里面写
                    SaeStorage ss = new SaeStorage();
                    // 使用upload方法上传到域为image下
                    ss.upload("image", realPath + fullFile.getName(),
                            fullFile.getName());

                    out.print("upload file:" + realPath + fullFile.getName()
                            + "</br>");
                }
            }
            out.print("upload end...");
        } catch (Exception e) {
            out.print("ERROR:" + e.getMessage() + "</br>");
        } finally {
            out.flush();
            out.close();
        }
    }

免责声明:文章转载自《SAE java应用读写文件(TmpFS和Storage)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用defined和require引入jsDelphi写DLL要注意的问题 (转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

wordpress源码解析-数据库表结构(转)

如果是一个普通的用户,不需要了解wordpress数据库的结构。但是,如果你正在写一个插件,你应该会对wordpress如何处理它的数据和关系感兴趣。如果你已经尝试使用已经存在的wordpress api 去访问你需要的数据,但不直接访问数据库的情况下,这是不可能的,WordPress的提供WPDB的类,使这项任务变得简单。 WordPress数据库的11...

七大国内外主流云计算开发平台

随着大众对云计算日益增长的需求,很多公司也建立了云计算开发平台,从多种角度、多形式的进行云技术的开发。这是开发者打造云战略的一个舞台,他们提供了云的部署及管理应用所需的基于云的开发和应用缩放或者是基础设施的管理,或是提供一个开源软件和硬件向结合的应用程序开发平台。 各种云平台(cloud platforms)的出现无疑是转变云计算技术的重要环节之一。顾名思...

SAE J2534介绍

概要 J2534是一种针对与射频相关的ECU进行闪存编程的概念,而不用考虑ECU使用的通信协议。其目的是所有类型的ECU都应当只需一个工具(硬件设备),通常被称为通过式设备。J2534设备和ECU之间的连接是SAE J1962连接器。J2534硬件设备需要连接到一台装有来自车辆厂商的应用程序编程接口的标准电脑(图1)。电脑和J2534硬件设备之间的连接方式...