




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现就JAVA中文件上传与下载的实现方法总结如下:一、上传方法1http方式:2)架包mons.fileupload.servlet.ServletFileUpload3)架包com.jspsmart.upload.SmartUpload4)架包jspupload5)传统fileinputstream,fileoutputstream方式6)struts框架支持2FTP方式:1)sun的架包2)架包.ftp.FTPClient 比较好用3)架包.ftp.FTPClient二、下载方法1http方式1)servlet+传统fileinputstream,fileoutputstream2)架包.ftp.FTPClient2FTP方式:1)servlet+架包.ftp.FTPClient 比较好用下面就架包.ftp.FTPClient实现文件上传与下载。代码如下:上传:JSP: 文件上传 文件位置: SERVLET:package com.test;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class UploadServletA extends HttpServlet private static final long serialVersionUID = 1L;public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException tryrequest.setCharacterEncoding(utf-8);response.setCharacterEncoding(UTF-8); response.setContentType(text/html; charset=UTF-8); String myFile = request.getParameter(mfile); /获取页面提交的文件int indexOf = myFile.lastIndexOf(); /获取最后一个“/”所在的索引位String fileName = myFile.substring(indexOf); /获取文件上传的文件名/创建输出流把指定的文件写入WEB工程的upload目录下(需要在WebRoot目录下创建upload目录)。FileOutputStream fos = new FileOutputStream(d:upload + fileName);/创建输入流读取指定文件java.io.FileInputStream fis = new java.io.FileInputStream(new java.io.File(myFile);byte buffer = new byte256;int len = 0;while (len = fis.read(buffer) 0) /循环读取文件到输出流fos.write(buffer, 0, len); /使用输出流输出文件。fos.flush();fis.close();fos.close(); PrintWriter pw=response.getWriter(); pw.println(); pw.println(); pw.println(); pw.println(); pw.println(alert(上传成功!); pw.println(); pw.println(); pw.println(); pw.println();catch(Exception e)e.printStackTrace();PrintWriter pw=response.getWriter(); pw.println(); pw.println(); pw.println(); pw.println(); pw.println(alert(上传失败!); pw.println(); pw.println(); pw.println(); pw.println();public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request, response);下载JSP: base href= 文件下载 !- 请点击文件名下载! 中文.txt SERVLET:package com.test;import java.io.File;import java.io.IOException;import .URLEncoder;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import .ftp.FTPClient;import .ftp.FTPClientConfig;import .ftp.FTPFile;import .ftp.FTPReply;/* * * author kfzx-zhouy05 */public class FtpDownloadServlet extends HttpServlet private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(utf-8);response.setCharacterEncoding(UTF-8); response.setContentType(text/html; charset=UTF-8);String path = upload;File f2 = new File(upload中文.txt);String filename2 = f2.getName();ServletOutputStream outputStream = response.getOutputStream();downFile(6, 21, zhouyun0243, zhouyun0243, path,filename2, outputStream, response);public void init() throws ServletException public static void downFile(String ip, int port, String username,String password, String remotePath, String fileName,ServletOutputStream outputStream, HttpServletResponse response) FTPClient ftp = new FTPClient();int count = 0;try int reply;ftp.connect(ip, port);/ 下面三行代码必须要,而且不能改变编码格式 ftp.setControlEncoding(UTF-8);FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);conf.setServerLanguageCode(zh);/ 如果采用默认端口,可以使用ftp.connect(url) 的方式直接连接FTP服务器 ftp.login(username, password);/ 登录 ftp.setFileType(FTPClient.BINARY_FILE_TYPE);reply = ftp.getReplyCode();if (FTPReply.isPositiveCompletion(reply) System.out.println(连接服务器失败);outputStream.println();outputStream.println();outputStream.println(alert(Connect server fail!);outputStream.println(document.location.href=http:/localhost:8080/struts2HibernateSpring/download.jsp);outputStream.println();outputStream.println();outputStream.close();ftp.disconnect();return;System.out.println(登陆成功。);ftp.changeWorkingDirectory(remotePath);/ 转移到FTP服务器目录 FTPFile fs = ftp.listFiles(); / 得到目录的相应文件列表 for (int i = 0; i fs.length; i+) FTPFile ff = fsi;if (ff.getName().equals(fileName) count+;String filename = fileName;/ 这个就就是弹出下载对话框的关键代码 response.setHeader(Content-disposition,attachment;filename=+ URLEncoder.encode(filename, UTF-8);/ 将文件保存到输出流outputStream中 ftp.retrieveFile(new String(ff.getName().getBytes(UTF-8),ISO-8859-1), outputStream);outputStream.flush();if (count = 1) /下载成功outputStream.close();ftp.logout();ftp.disconnect(); else /文件找不到outputStream.println();outputStream.println();outputStream.println(alert(File is not exist!);outputStream.println(document.location.href=http:/localhost:8080/struts2HibernateSpring/download.jsp);outputStream.println();outputStream.println();outputStream.close();ftp.logout();ftp.disconnect(); catch (Exception e) e.printStackTrace();try outputStream.println();outputStream.println();outp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《幼儿教师招聘》通关练习试题附参考答案详解【考试直接用】
- 空间分析考试题及答案
- 客服转正考试题及答案
- 炼钢工内部技能考核试卷及答案
- 燃气储运工技术考核试卷及答案
- 铝电解筑炉工岗位操作技能考核试卷及答案
- 铝电解工质量追溯知识考核试卷及答案
- 拖拉机燃油喷射系统装试工抗压考核试卷及答案
- 球团原料工标准化作业考核试卷及答案
- 固体废物监测员职业技能考核试卷及答案
- 苏教版(2024年新教材)七年级上册生物全册教案
- 自动售货机投放合作合同2024版
- 2021上半年盐城市东台市城投集团试题
- 医院院感检查表格全套汇总
- 动漫手办制作课
- 《现代控制理论》(刘豹-唐万生)
- 食品包装用纸盒企业标准
- 12D10 防雷与接地工程
- 小学生作文方格纸A4纸直接打印版
- 力量训练原理与实践
- 中医绝技临床实战特效绝活
评论
0/150
提交评论