页面jsp文件
<form name="add" action="/gxtWeb/lvjcontacts/manyContacts.action" method="post" enctype="multipart/form-data" onsubmit="return checkNull();">
<s:file name="upload"></s:file>
<input type="submit" value="导入信息" >
</form>
action处理:
public class ManyContactsAction extends ActionSupport {
private File upload;
private String uploadContentType;// 要上传的文件的类型
private String uploadFileName;// 要上传的文件
private ContactsManager manager;
private Contacts cbean;
private Persons pbean;
private Long gid;
private String result;
public String execute() throws Exception {
// 检查后缀名是否符合条件,同时更改上传文件的文件名
int filesize = this.getUploadFileName().length();
String fileEx = this.getUploadFileName().substring(
this.getUploadFileName().indexOf("."), filesize);
//获取文件名
String fileName=uploadFileName.substring(0,uploadFileName.indexOf("."));
// 获得上传路径
String realPath = ServletActionContext.getServletContext().getRealPath(
"/UploadFile/");
File saveFile=null;
if (upload != null) {
// 修改文件名,使上传后不至于重复替代
// this.uploadFileName = new Date().getTime() + fileEx;
saveFile = new File(new File(realPath), uploadFileName);
if (!saveFile.getParentFile().exists()) {
saveFile.getParentFile().mkdirs();
}
FileUtils.copyFile(upload, saveFile);// 到这里,文件已上传成功
// 下面进行判断文件是否是rar文件,是就需要解压
if (fileEx.equals(".rar")) {
System.out.println("saveFile:" + saveFile);//rar文件所在保存路径
System.out.println("realPath:" + realPath);//解压后保存路径
// 定义解压字符串,用于解压上传的rar文件,注意此处需要一个unrar.exe文件
String rarpath = ServletActionContext.getServletContext()
.getRealPath("/rarFile/UNRAR.exe x -t -o+ -p- \"");
String jieya = rarpath + saveFile + "\" \"" + realPath + "\"";
Process p1 = Runtime.getRuntime().exec(jieya);// 将传输的rar文件解压
p1.waitFor();
p1.destroy();
FileUtils.deleteQuietly(saveFile);// 删除rar文件
saveFile=new File(new File(realPath),fileName+".xls");
System.out.println("解压后:"+saveFile);
ServletActionContext.getResponse().getWriter().println(
"success!!");
}
if (fileEx.equals(".xls") || fileEx.equals(".xlsx")) {
// 开始读取文件了,获得第一列手机号码
Workbook persons = Workbook.getWorkbook(saveFile);// 获得xls文件
Sheet sheet = persons.getSheet(0);// 获得第一个工作簿
System.out.println("列数:" + sheet.getColumns());
int count = sheet.getRows();// 取得记录数,count行
String cphone;
// 遍历行,获得列数据
for (int i = 0; i < count; i++) {
cphone = sheet.getCell(0, i).getContents();// 第一列的所有行
pbean = manager.getPerson(cphone);// 获得该用户,查询别的信息
cbean = new Contacts();
Long contactsid = pbean.getId();
Long pid = 10002L;
cbean.setContactsid(contactsid);// 联系人id
cbean.setPid(pid);// 用户本身的PID
cbean.setCid("cid");// 关系的学校ID
cbean.setGid(gid);// 分组id
manager.addPerson(cbean);
this.contactsLog.writeLog("10002", "批量添加联系人", "批量添加联系人操作", "");
System.out.println("添加成功!");
}
}
return SUCCESS;
} else {
return INPUT;
}
}
}
xml配置:
<action name="manyContacts" class="manyContactAction">
<result name="success" type="redirectAction">personInfo.action
</result>
<result name="input" type="redirectAction">showmangpersons.action
</result>
</action>
注意:在文件解压时,需要一个unrar.exe文件,这个文件应保存在工程相应的目录下,我就放在webapps里面了,
按照上面的路径即可获得解压文件并进行解压。
这里配置文件没写任何限制,拦截器之类,都在action里面进行判断了,这里只做了类型判断,没有别的。
分享到:
相关推荐
在这个项目中,"asp文件上传并存入数据库"是一个具体实现,它涉及到ASP(Active Server Pages)编程、文件操作、以及数据库交互等多个技术领域。ASP是微软开发的一种服务器端脚本语言,常用于构建动态网站,与IIS...
这个场景中,我们将讨论如何使用Servlet和JSP来实现在Java Web应用中完成Excel文件的上传,并将其数据导入到MySQL数据库。Servlet是Java中用于处理HTTP请求的服务器端组件,而JSP则是一种动态网页技术,它们结合使用...
本示例中的“ASP读取Excel文件并写入Access数据库”是一个实用的应用场景,它涉及到数据迁移和整合,具体包括Excel数据的读取以及将这些数据存入Access数据库。下面我们将详细探讨这一过程。 首先,我们需要了解ASP...
2. 文件上传:在服务器端,JSP接收到文件后,使用Apache POI解析Excel文件,读取其中的数据。这一过程中,可能需要处理行、列、单元格等元素,将数据转化为Java对象或数组。 3. 数据存入数据库:将解析出的数据插入...
本项目关注的是如何使用Java来实现读取Microsoft Word文件,并将其中的数据上传到数据库,以此提升数据录入的效率。这一过程涉及到多个技术点,包括文件I/O、Word文档解析、数据库操作以及可能的数据转换。 首先,...
在ASP(Active Server Pages)开发中,上传Excel文件并读取其内容然后存入数据库是一项常见的任务,尤其在处理大量结构化数据时。这个过程通常包括以下步骤: 1. **文件上传**:ASP中可以使用`<input type="file">`...
在ASP(Active Server Pages)开发中,经常需要处理与数据导入导出相关的任务,例如将Excel和Word文档的数据转换为HTML格式并存入数据库。在这个场景下,ASP结合Access数据库可以实现这一功能。以下是对这一过程的...
在IT行业中,PHP是一种广泛使用的服务器端脚本语言,尤其在Web开发领域有着重要的地位。当我们需要处理Excel文件时,PHP提供了多种库和方法来实现这一功能。在本篇文章中,我们将深入探讨如何使用PHP来读取Excel文件...
用户通过表单提交包含Excel文件的数据,服务器端接收到请求后,会将文件保存在服务器的一个特定目录下。以下是一个简单的Spring MVC控制器示例: ```java import org.springframework.http.ResponseEntity; import ...
这个"asp将EXCEL导入导出数据库原程序"提供了一个解决方案,能够方便地将Excel中的数据存入MSSQL数据库,同时也能将数据库中的数据导出到Excel文件。 首先,我们需要了解如何使用ASP连接MSSQL数据库。通常,这涉及...
在服务器端,你需要解析上传的Excel文件,再次使用Apache POI库,然后将数据插入到数据库中。 4. **与Oracle数据库交互**: - 一旦Excel数据被读取,可以使用JDBC(Java Database Connectivity)来与Oracle数据库...
服务器端通常使用特定的库或框架(如Spring MVC、Struts2等)来处理这些上传请求,解析请求体中的文件内容,并保存到服务器的临时目录或者指定位置。文件上传时需要注意文件大小限制、安全性(防止文件注入攻击)...
在PHP代码实现上,我们需要创建一个解析函数(例如parse()),用于处理上传的Excel文件,并将数据导入数据库。在这个函数中,首先会检查文件是否上传成功,其次会引入ExcelFileParser类,并创建其对象实例。通过调用...
总结,Java POI是一个强大且灵活的工具,对于处理Office文档,尤其是在服务器端自动化操作中非常实用。通过上述的知识点讲解,你应该对如何使用POI有了更深入的理解,可以尝试使用提供的示例代码进行实践。
在服务器端,我们可以通过`HttpPostedFileBase`类来接收和处理这个文件。在ASP.NET Web Form中,可以使用`<asp:FileUpload>`控件来创建一个文件上传界面,而在ASP.NET MVC中,可以在视图中创建...
当用户上传Excel文件后,程序会解析文件内容,然后将这些内容转换为SQL插入语句,最终执行这些语句将数据存入数据库。这通常涉及到以下步骤: 1. **文件上传**:ASP.NET提供了FileUpload控件,允许用户选择本地...
在后端,你需要配合服务器端代码处理上传的文件,例如读取、验证或存储Excel数据。 2. **poi-ooxml-3.9.jar** 和 **poi_3.9.jar**:Apache POI 是一个开源项目,用于处理Microsoft Office格式的文件,包括Excel(....
- **PHP接收**:在服务器端,我们需要一个PHP脚本来接收并处理上传的文件。首先,确保`enctype="multipart/form-data"`在表单的`<form>`标签中设置,以支持文件上传。然后,在PHP中,我们可以使用`$_FILES`全局变量...
此案例中,你需要理解如何在API端接收并验证上传的Excel文件。 3. **Excel操作库**: 为了读取和解析Excel文件,开发者通常会使用第三方库,如EPPlus、NPOI或Microsoft Office Interop等。这个案例可能使用了其中...
在描述中提到的`ajaxFileupload`是一个JavaScript库,用于异步文件上传,通常与服务器端的`JFinal`配合使用。在`JFinal`中,你需要配置`Controller`来接收并处理上传请求。例如: ```java public class ...