首页 / JAVA / Java中如何实现FTP文件上传
Java中如何实现FTP文件上传
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java中如何实现FTP文件上传,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7768字,纯文字阅读大概需要12分钟。
内容图文
![Java中如何实现FTP文件上传](/upload/InfoBanner/zyjiaocheng/592/3c8e978c37de4284abfa18db1d7c3893.jpg)
1 package com.ztesoft.ibss.ct.bo.recruit; 2 3 import com.powerise.ibss.util.DBUtil; 4 import com.ztesoft.ibss.common.util.SqlMapExe; 5 import com.ztesoft.ibss.inf.framework.dao.SqlExe; 6 import org.apache.commons.fileupload.FileItem; 7 import org.apache.commons.fileupload.disk.DiskFileItemFactory; 8 import org.apache.commons.fileupload.servlet.ServletFileUpload; 9 import javax.servlet.ServletException; 10 import javax.servlet.http.HttpServlet; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13 import java.io.*; 14 import java.sql.Connection; 15 import java.util.List; 16 17 /** 18 * @Author zgp 19 * @Since 2021 -03 -29 15 :16 20 * @Description 招聘活动,pdf简历文件上传到服务器 21 */ 22 public class RecruitActivityUpPdf extends HttpServlet { 23 24 public RecruitActivityUpPdf() { 25 super(); 26 } 27 28 //Ftp主机名 29 private String ftpHost = "134.224.165.193"; 30 //Ftp用户名 31 private String ftpUserName = "wgzx"; 32 //Ftp密码 33 private String ftpPassword = "5Z9k%ppNrsuTFlh3"; 34 //Ftp的端口号,默认21 35 private int ftpPort = 21; 36 //Ftp服务器的文件路径 37 private String ftpPath = "/home/weblogic/Oracle/Middleware/user_projects/domains/APPdomain/upload/CtWeb/resume_pdf/"; 38 //上传文件名称 39 //private String fileName = "Teacher.pdf"; 40 41 /*//Ftp主机名 42 private String ftpHost = "134.225.67.7"; 43 //Ftp用户名 44 private String ftpUserName = "yzf"; 45 //Ftp密码 46 private String ftpPassword = "CHN_yzf486%#!"; 47 //Ftp的端口号,默认21 48 private int ftpPort = 21; 49 //Ftp服务器的文件路径 50 private String ftpPath = "/home/weblogic/ftp/yzf/"; 51 //上传文件名称 52 //private String fileName = "Teacher.pdf";*/ 53 54 private File storeFile; 55 private SqlMapExe sqlexe; 56 Connection conn=null; 57 //更新RecruitActivity表 58 private static final String UPDATE_RECRUIT_ACTIVITY="UPDATE RECRUITACTIVITY " 59 + "SET FILEINPUT=? WHERE LOGINPHONE=?"; 60 private String userNumber; 61 62 // 上传文件存储目录 63 private static final String UPLOAD_DIRECTORY = "upload"; 64 65 // 上传配置 66 private static final int MEMORY_THRESHOLD = 1024 * 1024 * 3; // 3MB 67 private static final int MAX_FILE_SIZE = 1024 * 1024 * 40; // 40MB 68 private static final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; // 50MB 69 70 @Override 71 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 72 73 //获取用户的号码,根据用户的号码更新表信息 74 userNumber = req.getParameter("userNumber"); 75 System.out.println("获取用户的userNumber为:"+userNumber); 76 77 //检测是否为多媒体上传 78 if (!ServletFileUpload.isMultipartContent(req)) { 79 // 如果不是则停止 80 PrintWriter writer = resp.getWriter(); 81 writer.println("Error: 表单必须包含 enctype=multipart/form-data"); 82 writer.flush(); 83 return; 84 } 85 86 // 配置上传参数 87 DiskFileItemFactory factory = new DiskFileItemFactory(); 88 // 设置内存临界值 - 超过后将产生临时文件并存储于临时目录中 89 factory.setSizeThreshold(MEMORY_THRESHOLD); 90 // 设置临时存储目录 91 factory.setRepository(new File(System.getProperty("java.io.tmpdir"))); 92 ServletFileUpload upload = new ServletFileUpload(factory); 93 94 // 设置最大文件上传值 95 upload.setSizeMax(MAX_FILE_SIZE); 96 // 设置最大请求值 (包含文件和表单数据) 97 upload.setSizeMax(MAX_REQUEST_SIZE); 98 // 中文处理 99 upload.setHeaderEncoding("UTF-8"); 100 101 // 构造临时路径来存储上传的文件 102 // 这个路径相对当前应用的目录 103 String uploadPath = getServletContext().getRealPath("/") + File.separator + UPLOAD_DIRECTORY; 104 //String uploadPath = getServletContext().getRealPath("/") + UPLOAD_DIRECTORY; 105 //String uploadPath = "/home/weblogic/Oracle/Middleware/user_projects/domains/APPdomain/upload/CtWeb/resume_pdf/"; 106 //String uploadPath = "/home/weblogic/ftp/yzf"; 107 108 // 如果目录不存在则创建 109 File uploadDir = new File(uploadPath); 110 if (!uploadDir.exists()) { 111 uploadDir.mkdir(); 112 } 113 114 try { 115 // 解析请求的内容提取文件数据 116 @SuppressWarnings("unchecked") 117 List<FileItem> formItems = upload.parseRequest(req); 118 119 if (formItems != null && formItems.size() > 0) { 120 // 迭代表单数据 121 for (FileItem item : formItems) { 122 // 处理不在表单中的字段 123 if (!item.isFormField()) { 124 String fileName = new File(item.getName()).getName(); 125 System.out.println("获取用户上传的文件名为:"+fileName); 126 /*upLoadFilePdf(uploadPath,fileName);*/ 127 //String filePath=uploadPath+File.separator+fileName; 128 String filePath = "/home/weblogic/Oracle/Middleware/user_projects/domains/newwap/upload/wap/upload/" + fileName; 129 //String filePath = uploadPath + fileName; 130 storeFile = new File(filePath); 131 // 在控制台输出文件的上传路径 132 System.out.println(filePath); 133 // 保存文件到硬盘 134 item.write(storeFile); 135 req.setAttribute("message", "文件上传成功!"); 136 //System.out.println("文件上传成功!"); 137 //upLoadFilePdf(uploadPath,fileName); 138 upLoadFilePdf(fileName); 139 //删除本地临时文件 140 //storeFile.delete(); 141 } 142 } 143 } 144 } catch (Exception ex) { 145 req.setAttribute("message", "错误信息: " + ex.getMessage()); 146 } 147 } 148 149 /** 150 * location:134.224.165.193 151 * username:wgzx 152 * password:5Z9k%ppNrsuTFlh3 153 * path:/home/weblogic/Oracle/Middleware/user_projects/domains/APPdomain/upload/CtWeb/resume_pdf/ 154 * @param 155 * @param file_name 156 */ 157 //public void upLoadFilePdf(String file_path, String file_name) { 158 public void upLoadFilePdf(String file_name) { 159 try { 160 161 SqlExe sqlExe=new SqlExe(); 162 boolean b = sqlExe.execUpdateForList(UPDATE_RECRUIT_ACTIVITY, new String[]{file_name, userNumber}); 163 System.out.println("retBoolean:"+b); 164 165 String tmpPath = System.getProperty("java.io.tmpdir"); 166 //FileInputStream in=new FileInputStream(new File(file_path + file_name)); 167 FileInputStream in=new FileInputStream(storeFile); 168 FtpUtilActivity.uploadFile(ftpHost, ftpUserName, ftpPassword, ftpPort, ftpPath, file_name, in); 169 //简历上传成功,同时更新简历表,更新文件上传字段 170 /*SqlExe sqlExe=new SqlExe(); 171 boolean b = sqlExe.execUpdateForList(UPDATE_RECRUIT_ACTIVITY, new String[]{file_name, userNumber}); 172 System.out.println("retBoolean:"+b);*/ 173 }catch (Exception e){ 174 e.printStackTrace(); 175 System.out.println("Exception:"+e.getMessage()); 176 } 177 } 178 179 @Override 180 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 181 this.doPost(req,resp); 182 } 183 }
内容总结
以上是互联网集市为您收集整理的Java中如何实现FTP文件上传全部内容,希望文章能够帮你解决Java中如何实现FTP文件上传所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。