在没有进行设置过程中,进行连接到ftp的服务器中之后,会提示的是错误的信息为”打开ftp服务器上的文件夹时发生错误 请检查是否”
2.这时候就需要进行设置的内容,进行打开电脑中的“工具”的选项。
3.这样就会弹出了下拉菜单中进行选择为“internet选项”即可。
4.进入到了internet选项的窗口的界面中之后,进行选择为“高级”的选项。
5.然后在列表中的设置中把”使用被动ftp”去掉即可了。
6.然后进行正常的访问到服务器中,就不会再次提示到错误的信息了。
拓展资料:FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。
参考资料:ftp服务器-百度百科
以二进制流上传,然后实现断点续传。/**
* 上传文件到FTP服务器,支持断点续传
* @param local 本地文件名称,绝对路径
* @param remote 远程文件路径,使用/home/directory1/subdirectory/file.ext 按照Linux上的路径指定方式,支持多级目录嵌套,支持递归创建不存在的目录结构
* @return 上传结果
* @throws IOException
*/
public UploadStatus upload(String local,String remote) throws IOException{
FTPClient ftpClient = new FTPClient()
//设置PassiveMode传输
ftpClient.enterLocalPassiveMode()
//设置以二进制流的方式传输
ftpClient.setFileType(FTP.BINARY_FILE_TYPE)
UploadStatus result
//对远程目录的处理
String remoteFileName = remote
if(remote.contains("/")){
remoteFileName = remote.substring(remote.lastIndexOf("/")+1)
String directory = remote.substring(0,remote.lastIndexOf("/")+1)
if(!directory.equalsIgnoreCase("/")&&!ftpClient.changeWorkingDirectory(directory)){
//如果远程目录不存在,则递归创建远程服务器目录
int start=0
int end = 0
if(directory.startsWith("/")){
start = 1
}else{
start = 0
}
end = directory.indexOf("/",start)
while(true){
String subDirectory = remote.substring(start,end)
if(!ftpClient.changeWorkingDirectory(subDirectory)){
if(ftpClient.makeDirectory(subDirectory)){
ftpClient.changeWorkingDirectory(subDirectory)
}else {
System.out.println("创建目录失败")
return UploadStatus.Create_Directory_Fail
}
}
start = end + 1
end = directory.indexOf("/",start)
//检查所有目录是否创建完毕
if(end <= start){
break
}
}
}
}
//检查远程是否存在文件
FTPFile[] files = ftpClient.listFiles(remoteFileName)
if(files.length == 1){
long remoteSize = files[0].getSize()
File f = new File(local)
long localSize = f.length()
if(remoteSize==localSize){
return UploadStatus.File_Exits
}else if(remoteSize >localSize){
return UploadStatus.Remote_Bigger_Local
}
//尝试移动文件内读取指针,实现断点续传
InputStream is = new FileInputStream(f)
if(is.skip(remoteSize)==remoteSize){
ftpClient.setRestartOffset(remoteSize)
if(ftpClient.storeFile(remote, is)){
return UploadStatus.Upload_From_Break_Success
}
}
//如果断点续传没有成功,则删除服务器上文件,重新上传
if(!ftpClient.deleteFile(remoteFileName)){
return UploadStatus.Delete_Remote_Faild
}
is = new FileInputStream(f)
if(ftpClient.storeFile(remote, is)){
result = UploadStatus.Upload_New_File_Success
}else{
result = UploadStatus.Upload_New_File_Failed
}
is.close()
}else {
InputStream is = new FileInputStream(local)
if(ftpClient.storeFile(remoteFileName, is)){
result = UploadStatus.Upload_New_File_Success
}else{
result = UploadStatus.Upload_New_File_Failed
}
is.close()
}
return result
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)