gpt4 book ai didi

java文件上传下载代码实例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 36 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章java文件上传下载代码实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例为大家分享了java文件上传下载的具体代码,供大家参考,具体内容如下 。

文件上传 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@requestmapping (value= "/uploadfile" ,method=requestmethod.post)
  public resultobject uploadfiles( @requestparam ( "file" )multipartfile file,httpservletrequest request){
     resultobject rs = null ; //返回上传完成信息
     string uploaddir = "files" ; //上传目录,文件保存在webapp下的files文件中
    if (!file.isempty()) {
      //可以对user做一些操作如存入数据库
      //以下的代码是将文件file重新命名并存入tomcat的webapp目录下项目的下级目录
      string filerealname = file.getoriginalfilename();          //获得原始文件名;
      /*int pointindex = filerealname.indexof(".");            //点号的位置
      string filesuffix = filerealname.substring(pointindex);       //截取文件后缀
      uuid fileid = uuid.randomuuid();            //生成文件的前缀包含连字符
      string savedfilename = fileid.tostring().replace("-", "").concat(filesuffix);    //文件存取名
      */
     
      string saveddir = request.getsession().getservletcontext().getrealpath(uploaddir); //获取服务器指定文件存取路径
      file savedfile = new file(saveddir, filerealname);
      boolean iscreatesuccess;
      try {
        iscreatesuccess = savedfile.createnewfile();
        if (iscreatesuccess) {
 
          file.transferto(savedfile); //转存文件
          rs = resultobject.getsuccessresult( "上传文件成功" );
          long size = file.getsize(); //获取文件大小
 
 
          rs.setdata(uploaddir+filerealname);
        } else {
          rs = resultobject.getfailresult( "请修改文件名,重新上传" );
        }
      } catch (ioexception e) {
        e.printstacktrace();
      }
    } else {
      rs = resultobject.getfailresult( "文件不能为空" );
    }
    return rs;
  }

文件下载 。

?
1
2
3
4
5
@requestmapping (value = "/filterpermission/appdownload" , method = requestmethod.get)
   public void appdownload(httpservletrequest request, httpservletresponse response) {
     //url是上面文件上传的url
     download(url,request,response);
   }
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public string download(string filepath, httpservletrequest request, httpservletresponse response) {
     bufferedinputstream bis = null ;
     bufferedoutputstream bos = null ;
     try {
       //获取文件名
       string filename = filepath.substring(filepath.lastindexof( "/" )+ 1 );
       response.setcharacterencoding( "utf-8" );
       response.setcontenttype( "application/octet-stream" );
       //response.setcontenttype("application/force-download");
       //处理下载弹出框名字的编码问题
       response.setheader( "content-disposition" , "attachment;filename="
           + new string( filename.getbytes( "gb2312" ), "iso8859-1" ));
       //获取文件的下载路径
       string path = request.getsession().getservletcontext().getrealpath(filepath);
       //利用输入输出流对文件进行下载
       inputstream inputstream = new fileinputstream( new file(path));
       //设置文件大小
       response.setheader( "content-length" , string.valueof(inputstream.available()));
 
       bis = new bufferedinputstream(inputstream); //构造读取流
       bos = new bufferedoutputstream(response.getoutputstream()); //构造输出流
       byte [] buff = new byte [ 1024 ];
       int bytesread;
       //每次读取缓存大小的流,写到输出流
       while (- 1 != (bytesread = bis.read(buff, 0 , buff.length))) {
         bos.write(buff, 0 , bytesread);
       }
       response.flushbuffer(); //将所有的读取的流返回给客户端
 
     } catch (filenotfoundexception e) {
       e.printstacktrace();
     } catch (ioexception e) {
       e.printstacktrace();
     } finally {
       try {
         if ( null != bis){
           bis.close();
         }
         if ( null != bos){
           bos.close();
         }
       } catch (ioexception e){
         system.out.println( "下载文件失败," + "文件路径:" +filepath+e);
         logger.error( "文件下载失败!" , e);
       }
     }
     // 返回值要注意,要不然就出现下面这句错误!
     //java+getoutputstream() has already been called for this response
     return null ;
   }

以上所述是小编给大家介绍的java文件上传下载详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。

原文链接:https://www.cnblogs.com/gczmn/p/9921479.html 。

最后此篇关于java文件上传下载代码实例的文章就讲到这里了,如果你想了解更多关于java文件上传下载代码实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com