代码如下:
System.out.println("************");
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(4194304);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);
System.out.println("设置成功!!!");
// 得到所有的文件:
List fileItems = fu.parseRequest(request);
System.out.println("获取文件成功!!!");
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
System.out.println("i====="+String.valueOf(i));
FileItem fi = (FileItem)i.next();
// 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
if(fileName!=null&&!fileName.equals("")){
System.out.println("Filename========" + fileName);
String fileName2 = fileName.substring(fileName.lastIndexOf("\\"),fileName.length());
System.out.println("fileName2=======" + fileName2);
// 在这里可以记录用户和文件信息
// ...
// 写入文件,可以从fileName中提取文件名:
String s_save = request.getSession().getServletContext().getRealPath("/test");
System.out.println("save_path===" + s_save);
fi.write(new File(s_save  + fileName2));
System.out.println("upload finish");
}

}问题:我上传txt,java,jsp这些文件都没有问题,但是上传xls,doc之类的文件,就会出错,System.out到“设置成功”,后面的“获取文件成功”就出不出来,不知道什么原因,各帮帮忙。

解决方案 »

  1.   

    这样的问题出现。不是你自己的错误。无论传输什么文件都一样包括.exe 
    出问题的估计是你找的组件建议lz自己写一些上传的例子你就明白了。
      

  2.   

    那就设大点试试吧
    空的word文档10k
    空的excel15k
      

  3.   

    LZ可不可以把你的上传代码和.jar发给我,
    我的email:[email protected],谢谢,LZ.
      

  4.   

    在servlet中
    DiskFileUpload dfu = new DiskFileUpload();
    dfu.setSizeThreshold(4096);
    dfu.setRepositoryPath("e:\\");
    try {
    List list = dfu.parseRequest(request);
    Iterator iter = list.iterator();
    while(iter.hasNext()){
    FileItem fi = (FileItem)iter.next();
    String fileName = fi.getName();
    System.out.println(fileName);
    String s_save = request.getSession().getServletContext().getRealPath("/os.xls");
    fi.write(new File(s_save));
    System.out.println(s_save);
    }
    } catch (FileUploadException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      

  5.   

    <%@ page language="java" pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html><head>
    <link rel="stylesheet" type="text/css"
    href="JS/resources/css/ext-all.css" />
    <script type="text/javascript" src="JS/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="JS/ext-all.js"></script>
    </head><body id="body">
    <div id=""></div><table border="2" border="2">
    <tr>
    <td>text:</td>
    <td id=""><script type="text/javascript">
    Ext
    .onReady(function() { var msg = function(title, msg) {
    Ext.Msg.show( {
    title : title,
    msg : msg,
    minWidth : 200,
    modal : true,
    icon : Ext.Msg.INFO,
    buttons : Ext.Msg.OK
    }); }; var btnUpload = new Ext.Button( {
    text : "Upload",
    handler : function() {
    save();
    }
    }); function save() {
    if (fp.getForm().isValid()) {
    fp
    .getForm()
    .submit(
    {
    url : 'indexTest',
    waitMsg : 'Uploading your photo...',
    success : function(fp, o) {
    msg(
    'Success',
    'Processed file "' + o.result.files + '" on the server');
    }
    });
    }
    } var fp = new Ext.FormPanel( {
    renderTo : 'fi-form',
    fileUpload : true,
    width : 500,
    frame : true,
    title : 'imageUpload',
    autoHeight : true,
    bodyStyle : 'padding: 10px 10px 0 10px;',
    labelWidth : 50,
    items : [ {
    xtype : 'textfield',
    fieldLabel : 'test1',
    name : 'name',
    inputType : 'file'
    }, 
    btnUpload

     ]
    });
    })
    </script>
    </tr>
    </table>
    <div id="fi-form"></div>
    </body>
    </html>jsp中