团队冲刺阶段-个人博客

我完成的成就

  完成学生页面前端代码的美化和编写。

        花费了三个小数。

       后面预计再花费2小时将学生前端页面与另外一名同学编辑的主页面进行连接实现,基本功能。

遇到的困难:

  如何将学生的作业以文档形式上传储存

解决方法:

  采用如下步骤:

创建文件上传表单

在前端页面中创建一个文件上传的表单,以便学生可以选择需要上传的文件。可以使用HTML中的<form>标签来创建表单,设置enctype属性为multipart/form-data,并使用<input>标签的type属性设置为“file”来创建文件上传字段。

处理上传文件

在服务器端,在接受到请求时,需要处理学生上传的文件。通过在JSP页面中使用Java Servlet技术,可以处理文件上传请求,使用组合stream(流),以二进制形式读取上传的文件,并保存在服务器上的指定位置。

储存文件信息

在保存文件之后,需要将上传的文件信息储存在数据库中。为了实现这一功能,需要创建一个用于将文件相关信息(文件名、上传时间、上传者姓名等)保存到数据库中的Java类。

实现下载功能

为学生提供这些保存在服务器上的文件,需要实现文件下载功能。可以使用Java Servlet技术来提供文件下载。例如,在点击“下载”按钮时,使用文件的唯一标识符从数据库中检索文件信息,使用流(stream)将文件发送到客户端。
综上所述,可以使用Java和JSP技术来实现学生作业在网站中以文档形式上传储存。需要完成文件上传表单的创建,文件处理的编写,文件信息存储的编写和文件下载的实现。

今日任务: 

               和小组将前端后端代码进行整合。

protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    try {
        // 检查是否是文件上传请求
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (!isMultipart) {
            response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Request is not multipart");
            return;
        }

        // 创建文件上传对象
        ServletFileUpload upload = new ServletFileUpload();

        // 解析上传的文件
        FileItemIterator iter = upload.getItemIterator(request);
        while (iter.hasNext()) {
            FileItemStream item = iter.next();
            String name = item.getFieldName();
            InputStream stream = item.openStream();

            if (item.isFormField()) {
                // 处理普通表单字段
                String value = new BufferedReader(new InputStreamReader(stream)).readLine();
                System.out.println("Form field " + name + " with value " + value + " detected.");
            } else {
                // 处理上传的文件
                String fileName = item.getName();
                if (fileName != null) {
                    fileName = FilenameUtils.getName(fileName);
                    FileOutputStream fileOut = new FileOutputStream("path/to/save/" + fileName);
                    IOUtils.copy(stream, fileOut);
                    fileOut.close();
                    System.out.println("File " + fileName + " has been uploaded.");

                    // 储存文件信息
                    FileDao fileDao = new FileDao();
                    Date date = new Date();
                    Timestamp timestamp = new Timestamp(date.getTime());
                    fileDao.saveFile(fileName, "uploader", timestamp);
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        return;
    }
}

 

posted @ 2023-05-21 21:52  ITJAMESKING  阅读(4)  评论(0编辑  收藏  举报