两台电脑(A 客户端,B 服务器)
我现在需要 在B服务器上运行程序, 在A客户端,通过jsp页面,点击上传excel文件,解析插入到B服务器的数据库中。
我把这段代码放到B服务器上运行,在A客户端页面 点击上传的时候,报错找不到文件。保存路径 那部分服务器的路径该怎么写?这段代码是不是有问题?不该这么写?
- Java code
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //创建硬盘factory FileItemFactory factory = new DiskFileItemFactory(); //工厂factory实例化上传组件 ServletFileUpload upload = new ServletFileUpload(factory); //从REQUEST获取所有上传域的列表 List items = null; try { items = upload.parseRequest(request); } catch (FileUploadException e) { System.out.println("获取文件失败.."); } //遍历得到所有文件 Iterator iter = items.iterator(); while (iter.hasNext()) { //if hasnext FileItem item = (FileItem) iter.next(); if (item == null || item.isFormField()) { String name = item.getFieldName(); String value = item.getString("GBK"); System.out.println(name + "=" + value); } else { //保存路径 String uploadPath = "\\home\\dev\\apache-tomcat-6.0.35\\excel.xls"; File uploadedFile = new File(uploadPath ); try { //写入文件 item.write(uploadedFile); } catch (Exception e) { System.out.println("文件写入失败 "); } } } //解析并插入数据库 // List<Excel2003Bean> list = ino.InsertInto(upLoaderPath); request.getRequestDispatcher("/app/fileUpload.jsp").forward(request, response); }
------解决方案--------------------------------------------------------
你找一个servlet上传文件的代码,测试通过后你再做添加到数据库的操作。这种代码网上很多
------解决方案--------------------------------------------------------
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存缓冲区,超过后写入临时文件
factory.setSizeThreshold(10240000);
// 设置临时文件存储位置
String base = this.getServletContext().getRealPath("/")+"files";
System.out.println("--------base----------------->"+base);
File file = new File(base);
System.out.println(file.getName());
System.out.println("------------>"+file.exists());
if(!file.exists())
file.mkdirs();
factory.setRepository(file);
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置单个文件的最大上传值
upload.setFileSizeMax(10002400000l);
// 设置整个request的最大值
upload.setSizeMax(10002400000l);
upload.setHeaderEncoding("UTF-8");
try {
List<?> items = upload.parseRequest(request);
System.out.println("itemsSize--------------->"+items.size());
FileItem item = null;
String fileName = null;
for (int i = 0 ;i < items.size(); i++){
item = (FileItem) items.get(i);
fileName = base + File.separator + item.getName();
System.out.println("--------fileName-------->"+fileName);
System.out.println("------------------------>"+item.getName());
// 保存文件
if (!item.isFormField() && item.getName().length() > 0) {
item.write(new File(fileName));
}
}
} catch (FileUploadException e) {