Java--Servlet MultipartRequest上传后文件改名

本文介绍了一个使用Java实现的文件上传功能,并将其应用于产品信息的保存过程。具体包括设置上传目录、限制文件大小、获取上传文件及产品详情参数等步骤。

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

示例代码

File fileDir = new File(this.getServletContext().getRealPath(  
                    "/upimg"));  
            if (!fileDir.exists()) {  
                fileDir.mkdirs();  
            }  
            int inmaxPostSize = 10 * 1024 * 1024;  
            MultipartRequest multirequest = null;  
            try {  
                multirequest = new MultipartRequest(request, fileDir  
                        .getAbsolutePath(), inmaxPostSize, "utf-8"); // utf-8中文编码模式上传文件  
                String name = multirequest.getParameter("name");// 获取普通信息  
                String typeCode = multirequest.getParameter("typeCode");  
                String info = multirequest.getParameter("info");  
                String newImgPath = "";  
                Enumeration<String> filedFileNames = multirequest  
                        .getFileNames();  
                String filedName = null;  
                if (null != filedFileNames && name != null  
                        && !name.trim().equals("") && info != null  
                        && !info.trim().equals("")) {  
                      
                    while (filedFileNames.hasMoreElements()) {  
                        filedName = filedFileNames.nextElement();// 文件文本框的名称  
                        // 获取该文件框中上传的文件,即对应到上传到服务器中的文件  
                        File uploadFile = multirequest.getFile(filedName);        
                          
                        if (null != uploadFile && uploadFile.length() > 0) {  
                            String imgPath = uploadFile.getName();  
                              
                            //imgPath为原文件名  
                            int idx = imgPath.lastIndexOf(".");  
                            //文件后缀  
                            String extention= imgPath.substring(idx);  
                              
                            java.util.Date dt = new java.util.Date(System  
                                    .currentTimeMillis());  
                            SimpleDateFormat fmt = new SimpleDateFormat(  
                            "yyyyMMddHHmmssSSS");  
                            String time = fmt.format(dt);  
                              
                            //新的文件名(日期+后缀)  
                            newImgPath = time + extention;  
                              
                            File f = new File(fileDir + "/" + newImgPath);  
                            uploadFile.renameTo(f);  
                              
                        }  
                    }  
                    Products products = new Products();  
                    products.setpName(name);  
                    products.setInfo(info);  
                    products.setImgPath(newImgPath);  
                    products.setTypeCode(typeCode);  
                    products.setPubDate(new Date());  
                    productsDao.addProducts(products);  
                    。。。  
                } else {  
                    。。。  
                }  
            } catch (Exception e) {  
                e.printStackTrace();  
            }

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值