当前位置: 代码迷 >> Java Web开发 >> 高手给改改错,多谢! 文件下传远程服务器
  详细解决方案

高手给改改错,多谢! 文件下传远程服务器

热度:960   发布时间:2013-02-25 21:13:47.0
高手给改改错,谢谢! 文件上传远程服务器。
两台电脑(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) {
  相关解决方案