jspsmartupload组件用来上传文件

解决方案 »

  1.   

    如果不是jsp就用socket,也很简单的
      

  2.   

    能给个用socket的例子吗,谢谢
      

  3.   

    直接将inputstream传过去即可或
    将数据流转换成字节传送
      

  4.   

    请问wenming168(清风) ,如何直接将inputstream传过去啊
      

  5.   

    可能是我没有说清楚,是这样的,B/S结构中,客户端上传附件到服务器端,上传有个要求,就是只指定一个目录,就把该目录下的所有需要上传的文件自动上传.我是在客户端,读取每个文件,把数据流转换成字节流传送到服务器端,再在服务器端写出文件.可是后来要求上传的文件必须是word的,如果是传字节流的话,再写出word文件时word文件的内容全部都是乱码,所以我改用poi写word,可是poi中写word的文件的类的构造函数需要用FileInputStream来构造,所以我需要把FileInputStream直接传到服务器端.我看wenming168(清风)说可以把InputStream直接传过去,请问该如何做呢?
      

  6.   

    Socket
    客户:
    Socket client=new Socket("..","..");
    OutputStream in=client.getOutputStream();
    BufferedOutputStream bout=new BufferedOutputStream(in);
    byte[] b=new byte[1024];
    try{
         FileInputStream fin=new FileInputStream("demo.data");
         while(true)
         {
            fin.read(b);
            bout.write(b,0,b.length);
         }
         
        }
    catch(EOFException e){} 
    服务器:
    ServerSocket server=new ServerSocket("..");
    Socket socket=server.accept();
    InputStream in=new socket.getInputStream());
    ................
      

  7.   

    to  ch_jp(ch_jp) :
    SmartUpload已经试过了,没法一次上传一个目录的所有文件
    to zanjun(战骏):
    如果用scoket,不是总要在服务器里开个一个线程去监听端口吗。
    如果只能这样,那不就变成C/S了吗
      

  8.   

    客户端用File构造一个文件,我在服务器端如何获得这个File?
    //这个涉及安全问题
      

  9.   

    常规c/s结构用socket,b/s结构用jspsmartupload组件。也可以混合!
      

  10.   

    用 Struts也可以上传文件的,它自带的例子里有,你去看看就明白了很简单
      

  11.   

    Struts能一次上传整个目录的文件吗
    现在客户的要求是,选择一个目录,然后上传这个目录的全部文件
      

  12.   

    File 类 list 方法!看一看吧,再也不要说SmartLoad不能传整个目录!
      

  13.   

    请问,如果不用Socket的话,服务器端能不能获取客户端的InputStream的呢?
      

  14.   

    再问一次,如果不用Socket的话,服务器端能不能获取客户端的InputStream的呢?
      

  15.   

    jspsmartupload可以上传多个文件的,另外struts中有一个upload(记不清楚了)的jar包可以替代jspsmartupload
      

  16.   

    to zxmzfbdc(也速该把阿秃儿):
    我知道可以上传多个文件,但现在用户的要求是,选择目录,然后上传这个目录里的所有文件
    不是说一个一个文件的上传,可能是我对jspsmartupload不太了解,能给个例子吗,谢谢
      

  17.   

    FileInputStream对象是不能直接传送的,因为FileInputStream对象的创建需要和本地的物理文件结合的,它使用native方法来从本地物理文件中读取字节。如果如你所愿把这个对象传送到服务器端,而它创建时对应的物理文件还是在客户端的!文件的传送是应该是在客户端构建可以读取字节流的对象,把字节传送到服务器端,服务器端接受到字节在组成文件。
      

  18.   

    谢谢lovexpforever(心在非) ,终于有人看懂我发的帖子了,再次谢谢!!!
      

  19.   

    楼主,很遗憾的告诉你,如果用纯B/S的实现,是无法做到你这个要求的。关键问题出在微软的IE身上,微软为了保证IE提交的本地文件是由客户端用户指定的,所以任何通过代码来设置上传文件名到<input type=file>中都是不行的(只能通过用户手动操作选取文件)。当然你可以使用Applet或楼上所说的Socket的方式,但前提是这样做客户端必需安装jre环境,这也是相当麻烦的事情。另外我想到一个办法,或许可以用Microsoft.XMLHTTP组件来实现文件上传,但具体我没有试过,不过考虑到微软的安全性考虑,估计这条路也未必行得通,否则你就真的发现微软的又一个重大BUG了
      

  20.   

    如果转成字节流,是不是用ByteArrayInputStream
      

  21.   

    up ,ObjectOutputStream 呢,行不?
      

  22.   

    FileInputStream fileIn = new FileInputStream("temp.txt");
    ObjectInputStream objectIn = new ObjectInputStream(fileIn);  //在这里总是报invalid stream header这是为什么啊?
      

  23.   

    ObjectInputStream 必需是一个类经过序列化产生的流,这个流一般是通过ObjectOutputStream 生成的,你这个temp.txt是通过ObjectOutputStream 生成的吗?
      

  24.   

    谢谢大家的帮忙,分肯定是不够了,我再开贴加分.
    就这个破问题已经困扰我2个星期了,我也用过Applet和Socket都没有成功.
    最主要的问题就是,现在传输的不是普通的文件,而是word文件,在网上查到要读取word必须用POI这个包,但要是转换成字节流就会出现乱码,所以要直接使用fileinputstream的对象。
    请问各位高手,有没有做过传输word的文件的例子啊,而且是目录下所有文件一起上传(就是选择目录就上传目录下的所有文件),楼上的有说jspsmartupload能向我说的这样上传,麻烦楼上的好好给我讲讲好吗? 谢谢!!!