ftp上传文件失败,求大神解救

rookie1995 2017-06-28 11:17:28
public List<File> upload(List<File> files) {
// TODO Auto-generated method stub
//读取配置
InputStream in = getClass().getResourceAsStream(
"/config/jdbc.properties");
Properties prop = new Properties();
List<File> list = new ArrayList<File>();
try {
prop.load(in);
FileInputStream input = null;
String path = prop.getProperty("sanfang.report.temp");
System.out.println("444444------" + ftpClient);
for (File f : files) {
ftpClient.changeWorkingDirectory(path);
input = new FileInputStream(f);
Logger.info(f.getName() + "开始上传........");
ftpClient.enterLocalPassiveMode();
System.out.println(f.getName());
Boolean bool = ftpClient.storeFile(f.getName(), input);
if (bool == true) {
Logger.info(f.getName() + "上传成功");
} else {
list.add(f);
System.out.println("上传失败" + bool);
}
}
if (input != null) {
input.close();
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}

return list;

}

上传一直失败,也没有报错,百度了半天也没找到解决办法,求大神解救啊



...全文
585 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rookie1995 2017-06-28
  • 打赏
  • 举报
回复
来人啊!夭寿啦!救命啊!
lyn584238910 2017-06-28
  • 打赏
  • 举报
回复
没搞懂你说ftp上传是啥;给你一份通用的上传,把格式改改就行public String[] uploadFile(HttpServletRequest request, HttpServletResponse response,String savePath ) throws ServletException, IOException { // //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全 // AuthUser user = (AuthUser) SecurityUtils.getSubject().getSession().getAttribute(PrivilegeResource.SESSION_USER); //// String savePath = "D:/HD_RZG_EAM_5.0/files/upload"; //// String[] a = user.getAccount().split("@"); // String account = ""; // String saveFilename = ""; // FileOutputStream out= null; // String idNo=""; // String fileNam=""; // String fileUrl=""; // String saveNam=""; // String fileExtName=""; // String[] blob = new String[5]; // //上传时生成的临时文件保存目录 // String tempPath = request.getSession() // .getServletContext().getRealPath("/WEB-INF/temp"); // File tmpFile = new File(tempPath); // if (!tmpFile.exists()) { // //创建临时目录 // tmpFile.mkdir(); // } // //消息提示 // //String message = ""; // try{ // //使用Apache文件上传组件处理文件上传步骤: // //1、创建一个DiskFileItemFactory工厂 // DiskFileItemFactory factory = new DiskFileItemFactory(); // //设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。 // factory.setSizeThreshold(1024*100); // //设置缓冲区的大小为100KB,如果不指定,那么缓冲区的大小默认是10KB // //设置上传时生成的临时文件的保存目录 // factory.setRepository(tmpFile); // //2、创建一个文件上传解析器 // ServletFileUpload upload = new ServletFileUpload(factory); // //监听文件上传进度 // upload.setProgressListener(new ProgressListener(){ // public void update(long pBytesRead, long pContentLength, int arg2) { // System.out.println("文件大小为:" + pContentLength + ",当前已处理:" + pBytesRead); // /** * 文件大小为:14608,当前已处理:4096 文件大小为:14608,当前已处理:7367 文件大小为:14608,当前已处理:11419 文件大小为:14608,当前已处理:14608 */ // } }); // //解决上传文件名的中文乱码 // upload.setHeaderEncoding("UTF-8"); // //3、判断提交上来的数据是否是上传表单的数据 // /* if(!ServletFileUpload.isMultipartContent(request)){ // //按照传统方式获取数据 // return; // } */ // //设置上传单个文件的大小的最大值,目前是设置为1024*1024字节,也就是1MB // upload.setFileSizeMax(1024*1024); // //设置上传文件总量的最大值,最大值=同时上传的多个文件的大小的最大值的和,目前设置为10MB // upload.setSizeMax(1024*1024*10); // //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项 // List<FileItem> list = upload.parseRequest(request); // for(FileItem item : list){ // //如果fileitem中封装的是普通输入项的数据 // if(item.isFormField()){ // String name = item.getFieldName(); // //解决普通输入项的数据的中文乱码问题 // String value = item.getString("UTF-8"); // value = new String(value.getBytes("iso8859-1"),"UTF-8"); // idNo=value; // if(idNo.indexOf("@")>0){ // account=idNo.split("@")[0]+".png"; // } // }else{ // //如果fileitem中封装的是上传文件 //得到上传的文件名称, // String filename = item.getName(); // fileNam=filename; // if(filename==null || filename.trim().equals("")){ // continue; // } // //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt // //处理获取到的上传文件的文件名的路径部分,只保留文件名部分 // filename = filename.substring(filename.lastIndexOf("\\")+1); // //得到上传文件的扩展名 // fileExtName = filename.substring(filename.lastIndexOf(".")+1); // //如果需要限制上传的文件类型,那么可以通过文件的扩展名来判断上传的文件类型是否合法 // //获取item中的上传文件的输入流 // InputStream in = item.getInputStream(); // //根据传入路径判断用哪个保存名字 //// String[] path = savePath.split("/"); //// String pathShort=path[3]; // //得到文件保存的名 // if(account.equals("")){ // saveFilename =HdUtils.generateUUID()+"_"+ filename; // }else{ // saveFilename = account; // } // saveNam = saveFilename; // //得到文件的保存目录 // //upload\2\3 upload\3\5 //File既可以代表文件也可以代表目录 // File file = new File(savePath); // //如果目录不存在 // if(!file.exists()){ // //创建目录 // file.mkdirs(); // } // String path = file.getPath()+file.separator+saveNam; // fileUrl=savePath; // //创建一个文件输出流 // out = new FileOutputStream(path); // //创建一个缓冲区 // byte buffer[] = new byte[1024]; // //判断输入流中的数据是否已经读完的标识 // int len = 0; // //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据 // while((len=in.read(buffer))!=-1){ // //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中 // out.write(buffer, 0, len); // } // //关闭输入流 // in.close(); // //关闭输出流 // out.close(); // //删除处理文件上传时生成的临时文件 // // item.delete(); // //message = "文件上传成功!"; // } //// if(!"".equals(idNo)&&null!=idNo){ //// String sql="insert into DEV_CARD_FILE ( dev_no,seq_no,file_url,file_nam,save_nam,record_nam,record_tim,update_nam,update_tim)" //// + " values('"+idNo+"','"+HdUtils.generateUUID()+"','"+fileUrl+"','"+fileNam+"','"+saveNam+"','"+user.getName()+"',sysdate,'"+user.getName()+"',sysdate)"; //// executeNativeSql(sql, null); //// } // } // blob[0]=idNo; // blob[1]=fileNam; // blob[2]=saveNam; // blob[3]=fileUrl; // blob[4]=fileExtName; // }catch (FileUploadBase.FileSizeLimitExceededException e) { // e.printStackTrace(); // //request.setAttribute("message", "单个文件超出最大值!!!"); // } // catch (FileUploadBase.SizeLimitExceededException e) { // e.printStackTrace(); // //request.setAttribute("message", "上传文件的总的大小超出限制的最大值!!!"); // //request.getRequestDispatcher("/message.jsp").forward(request, response); // } // catch (Exception e) { // idNo= null; // e.printStackTrace(); // } // // request.setAttribute("message",message); // return blob; // } //

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧