我正在尝试将文本文件保存在我的驱动器中的ftp服务器上并且它有数据,文件已经成功存储在那里,但是文件完全是空的,即使它有数据。
以下是我的松散尝试。
FTPClient client = new FTPClient();
FileInputStream fis = null;
try {
client.connect("ftp.drivehq.com");
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
client.login("zaheerkth", "mypassword");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String filename = "c://ss.txt";
try {
fis = new FileInputStream(filename);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
client.storeFile(filename, fis);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
client.logout();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:2)
如果您在防火墙或NAT后面运行,则可能需要执行client.enterLocalPassiveMode()
。
编辑:本地被动可能就是你想要的。
答案 1 :(得分:1)
这是我的代码请在此检查我想在数据库中存储文件名&在此代码中将文件存储在ftp服务器中我能够存储该文件,该文件中没有内容存储为空白文件。
String email="";
int i=0;
int count1=0;
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart) {
} else {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
Iterator itr = items.iterator();
while (itr.hasNext())
{
FileItem item = (FileItem) itr.next();
if (item.isFormField())
{
String name = item.getFieldName();
String value = item.getString();
if(name.equals("email"))
{
email=value;
}
} else
{
try {
String itemName = item.getName();
itemName = new java.io.File(itemName).getName();
String fname="";
String ext="";
int mid= itemName.lastIndexOf(".");
fname=itemName.substring(0,mid);
ext=itemName.substring(mid+1,itemName.length());
if(ext.equals("doc") || ext.equals("docx") ||ext.equals("txt") ||ext.equals("pdf")){
count1=1;
FileInputStream fis = null;
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/beehivej_beehivejobs", "root", "root");
Statement stmt = conn.createStatement();
String s="SELECT idfile FROM file ORDER BY idfile DESC LIMIT 1";
ResultSet rs=stmt.executeQuery(s);
while(rs.next()){i=Integer.parseInt(rs.getString(1));}
String sql="insert into file (filename,emailid) Values ('"+itemName+"','"+email+"')";
int in=stmt.executeUpdate(sql);
FTPClient client = new FTPClient();
try {
client.connect("ftp.xyz.com");
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
client.login("username", "password");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fis = new FileInputStream(itemName);
count1=1;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
String name="Beehive_Resume"+i+"."+ext;
client.enterLocalPassiveMode();
client.storeFile(itemName, fis);
count1=1;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
client.enterLocalActiveMode();
client.logout();
count1=1;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fis.close();
count1=1;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else
{
response.sendRedirect("Account/reg4.jsp?email="+email+"&msg=This is not Supported File");
}
}catch (Exception e) {
e.printStackTrace();
count1=1;
}
}
}
}
if(count1==1)
{
response.sendRedirect("Account/Home.jsp?email="+email);
}