如题 谢谢 已经做到上传下载 数据库也正确  但是为了防止上传文件同名称不同内容所造成的覆盖  想问一下  麻烦各位同仁了

解决方案 »

  1.   

    你得到上传的文件的时候应该要写到服务器,你肯定要new file吧?这个时候就可以取名了
      

  2.   


    FormFile file = myActionForm.getTheFile();
    try {
    InputStream input = file.getInputStream();
    String path = request.getRealPath("/");
    System.out.println(path + "/" + file.getFileName()); // 文件路径及名称
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    OutputStream out = new FileOutputStream(path + "/" + file.getFileName()); //这里将输出名称改一下就行了,不一定要用file.getFileName(),可以用自定义的名字
    int i = 0;
    byte[] buff = new byte[8192];
    while ((i = input.read(buff, 0, 8192)) != -1) {
    out.write(buff, 0, i);
    }
    out.close();
    input.close();
    } catch (Exception ex) {
    System.out.println(ex.getMessage());
    }
      

  3.   

     OutputStream out = new FileOutputStream(path + "/" + file.getFileName()); 
    你这里完全可以path + "/" + file.getFileName()+(唯一标识)呀。。这样不就OK了么
      

  4.   

    感谢5L的代码和注释。 虽然代码用处不大  不过还是辛苦了  6L一语惊醒梦中人  其实我知道在那里改   我一直在想怎么获得文件类型  file.getContentType()一直没有弄明白  看了6L的话 我一下就醒了  我不用获取文件类型啊  只要"/"+uuid+ file.getFileName()就可以了啊 !!  这样就避免重复了 多文件上传防止重名还可以 "/"+uuid+i+file.getFileName() i是file获取时在数组的位置 这样就根本不会重复了