首页 > 编程知识 正文

java实现文件上传下载功能,下载了java但是电脑上找不到

时间:2023-05-03 09:14:53 阅读:169931 作者:3888

原理是使用java.io的文件类打开下载的文件,用输入流将文件读入系统,将response的输出连接到系统,用输入流和输出流进行文件的下载。

在response的响应标头中设置下载文件的文件名

/** *下载文件* @param fileId文件id * @ param session * @ param request * @ param response * @ return成功下载了文件。 失败是0 * @ throwsioexception */@ request mapping (/download.do ) public int downloadfile (integer fileid,http session session ) //确定用户是否具有下载此文件if(session.getattribute ) (kid )的权限!=null () kid=(int ) session.getattribute ) ) kid ); advertisement advertisement=advanceservice.selectbyprimarykey; //根据文件id从数据库中选择文件名stringadvertis=advertisement.get content (; intadvertiskid=advertisement.get kid (; //在用户的KID和文件的KID不同的情况下,以用户和文件不是同一公司的为由,禁止IF的下载(Advertiskid!=kid}{return0; //文件所在的目录路径string file path=uploadfilebasepathadvertis; System.out.println (文件路径: ' filePath ); //获取该文件文件=新文件(文件路径); if (! file.exists () (system.out.println ) ' havenosuchfile!' ); 返回0; //如果文件不存在则退出的方法(fileinputstreamfileinputstream=new file inputstream (file ) ); 设置Http响应标头,告知浏览器下载此附件,下载的文件名也是在此处设置的response.setheader (' content-disposition )、' attachmm filename=' urlencoder.encode (advert is,' UTF-8 ' ); 输出流输出流=response.get输出流(; byte[] bytes=new byte[2048]; int len=0; while ((len=file inputstream.read ) bytes )0) outputstream.write ) bytes,0,len ); } fileInputStream.close (); outputStream.close (; } return 0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。