web 项目中的文件上传服务器的代码实现

本文介绍了一种在JavaWeb环境中实现文件上传的方法。通过具体的代码示例,展示了如何配置前端表单以支持文件上传,并详细解释了后端处理流程,包括文件解析、临时文件存储及最终保存到指定路径的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java web 中文件上传的实现

1,view层
<%@ page language="java" import="java.util.*"
        contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<html>
        <body>
                <form action="servlet/UpDownLoadFile" enctype="multipart/form-data"
                        method="post">
                        <input type="text" name="username" />
                        <br />
                        <input type="file" name="myfile" />
                        <br />
                        <input type="file" name="myfile" />
                        <br />
                        <input type="submit" />
                </form>
                <br />
        </body>
</html>
2,文件上传类File_upload
package file_upload;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.RequestContext;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;

public class File_upload {

        private String dir_name = "BooksImage";

        public HashMap begin_upload(HttpServletRequest request,
                        HttpServletResponse response) {
                HashMap param_hm = new HashMap();
                try {
                        // jsp file encode utf-8 must
                        request.setCharacterEncoding("utf-8");
                        RequestContext requestContext = new ServletRequestContext(request);
                        if (FileUpload.isMultipartContent(requestContext)) {
                                DiskFileItemFactory factory = new DiskFileItemFactory();
                                File temp_file = new File(request.getRealPath("") + "//"
                                                + getDir_name() + "//");
                                temp_file.mkdir();
                                factory.setRepository(temp_file);
                                ServletFileUpload upload = new ServletFileUpload(factory);
                                upload.setHeaderEncoding("utf-8");
                                upload.setSizeMax(-1);
                                List items = new ArrayList();
                                items = upload.parseRequest(request);
                                Iterator it = items.iterator();
                                while (it.hasNext()) {
                                        FileItem fileItem = (FileItem) it.next();
                                        if (fileItem.isFormField()) {
                                                param_hm.put(fileItem.getFieldName(), new String(
                                                                fileItem.getString().getBytes("iso8859-1"),
                                                                "utf-8"));
                                        } else {
                                                if (fileItem.getName() != null
                                                                && fileItem.getSize() != 0) {
                                                        File fullFile = new File(fileItem.getName());
                                                        File newFile = new File(request.getRealPath("")
                                                                        + "//" + getDir_name() + "//"
                                                                        + fullFile.getName());
                                                        fileItem.write(newFile);
                                                } else {
                                                        System.out.println("文件没有选择 或 文件内容为空");
                                                }
                                        }
                                }
                        }
                } catch (UnsupportedEncodingException e2) {
                        // TODO Auto-generated catch block
                        e2.printStackTrace();
                } catch (FileUploadException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

                return param_hm;
        }

        public void setDir_name(String dir_name) {
                this.dir_name = dir_name;
        }

        public String getDir_name() {
                return dir_name;
        }
}
备注:private String dir_name = "BooksImage";此处成员变量,代表你上传时将在服务器你的项目目录:WEB-INF吓创建一个以此变量名称一样的文件夹作为用户上传目录,如果此目录存在,不会创建,直接将文件写入!是不是使用啊!

使用这个类需要file_upload.jar包:下载地址:http://download.youkuaiyun.com/source/337184
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值