我正在使用Net :: FTP将文件传输到大型机,并且正在测试故障情况。
我的代码基本上遵循以下几行:
my $ftp = Net::FTP->new ("mainframe.com", Timeout => 20);
if (! $ftp) {
logMessage ("Could not connect to host: $!");
return;
}
if (! $ftp->login ("paxdiablo", "demigodemporeroftheuniverse")) {
logMessage ("Could not log in to host: $!");
$ftp->quit ();
return;
}
if (! $ftp->put ("myfile.txt", "'CANT.WRITE.TO.THIS'")) {
logMessage ("Could not put file: $!");
$ftp->quit ();
return;
}
Run Code Online (Sandbox Code Playgroud)
我知道无法创建数据集,CANT.WRITE.TO.THIS因为我没有所需的权限,但是当我尝试尝试时,看到的唯一消息是:
Could not put file:
Run Code Online (Sandbox Code Playgroud)
没有迹象表明$!问题出在哪里。我看了看Net::FTPdoco,上面写着:
put ( LOCAL_FILE [, REMOTE_FILE ] …
我想将文件上传到FTPS和SFTP.我的代码目前正在使用FtpWebRequest对象上传到FTP.我应该使用哪些更改或类来上传到FTP,FTPS和SFTP服务器?
我对此很困惑,我试图通过VBS脚本将数据上传到FTP,它适用于单个文件文件,但是当我在循环中添加脚本时不上传多个文件.
另外,为什么我们需要在远程上传到FTP时生成临时文件,
我是说这个,
这是我正在使用的脚本,
Dim fso, folder, files, strPath
Set fso = CreateObject("Scripting.FileSystemObject")
strPath = "E:/Test"
Set folder = fso.GetFolder(strPath)
Set files = folder.Files
Const hostname = "ftp.domain.com"
Const port = 21
Const username = "username"
Const password = "password"
Const remoteDir = "/"
Const useDefaultsExclusively = True
Const skipConfirmation = True
For each item In files
If InStr(1, item.Name, "txt") <> 0 Then
defaultFile = item.Name
localFile = fso.getFileName(defaultFile)
localDir = fso.getParentFolderName(defaultFile)
Set shell = CreateObject("WScript.Shell")
tempDir = shell.ExpandEnvironmentStrings("%TEMP%") …Run Code Online (Sandbox Code Playgroud) 可以使用Windows Phone中的套接字连接到FTP服务器吗?如果是,我该如何实施呢?
如何向服务器提供登录名和密码?
谢谢.
我正在使用Perl和Net :: FTP编写一个脚本,它试图将一个相当大的文件上传到大型机,我似乎无法正确地进行主/次分配.
我尝试更改它们但看起来,因为数据集是由SMS管理的,所以每次都会转到不同的卷.
所以我去寻找quote site可以(希望)将上传锁定到特定卷的选项.
我目前的选择是:
$ftp->site ("bl=10204 lr=170 rec=vb cy pri=100 sec=100")
Run Code Online (Sandbox Code Playgroud)
在大多数卷上,空间非常紧张.但是,我找到了一个具有所需空间的卷,但不知道如何在FTP选项中指定它.
是否有文件在某处详细说明了这些文件?我在CommServer的东西中找不到任何东西,谷歌搜索也找不到ftp zos quote site有用的东西.
或者,是否有人知道指定固定量的选项?显然我更喜欢前者,因为那里可能还有其他有用的东西,但是,在这一点上,我会感激地采取后者 - 我已经接近拔出我所有的头发了:-)
我想在java应用程序中下载一个文件,当我尝试它时,它会在我的硬盘驱动器上创建该文件但无法完全下载它.我正在使用ftp4j库来做到这一点.
import it.sauronsoftware.ftp4j.*;
public class Main {
public static void main (String args[]){
FTPClient client = new FTPClient();
try{
client.connect("ftp.myaddress.comlu.com");
client.login("username", "password");
System.out.println("Connection created");
client.download("public_html/ZScreen.png", new java.io.File("d:/xxx/ZScreen.png"));
System.out.println("Download successful");
client.disconnect(true);
}
catch (Exception FTPException){
System.out.println("Shit hit the fan");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我总是创建Connection并且Shit击中粉丝.此外,我的硬盘驱动器上创建了一个文件,但它的大小为0字节.
这是堆栈竞赛
Connection created
java.net.SocketException: Connection reset
Shit hit the fan
at java.net.SocketInputStream.read(SocketInputStream.java:189)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:126)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:112)
at java.io.InputStreamReader.read(InputStreamReader.java:168)
at it.sauronsoftware.ftp4j.NVTASCIIReader.readLine(NVTASCIIReader.java:105)
at it.sauronsoftware.ftp4j.FTPCommunicationChannel.read(FTPCommunicationChannel.java:142)
at it.sauronsoftware.ftp4j.FTPCommunicationChannel.readFTPReply(FTPCommunicationChannel.java:187)
at it.sauronsoftware.ftp4j.FTPClient.openPassiveDataTransferChannel(FTPClient.java:3538)
at it.sauronsoftware.ftp4j.FTPClient.openDataTransferChannel(FTPClient.java:3473)
at it.sauronsoftware.ftp4j.FTPClient.download(FTPClient.java:3302) …Run Code Online (Sandbox Code Playgroud) 我有这个失败的基本代码:
ftpconfighash = open("#{RAILS_ROOT}/config/ftp.yml") {|f| YAML.load(f) }
config = ftpconfighash[12345]
ftp = Net::FTP::new(config["host"])
ftp.login(config["username"], config["password"])
dir += "/" unless config["dir"].blank? or config["dir"].ends_with?("/")
remotename = File.basename(filename)
remotename = dir + remotename unless dir.blank?
if File.binary?(filename)
puts "PUTting binary file #{filename} to #{remotename}"
ftp.putbinaryfile(filename, remotename)
else
puts "PUTting ASCII file #{filename} to #{remotename}"
ftp.puttextfile(filename, remotename)
end
ftp.close
Run Code Online (Sandbox Code Playgroud)
我已经验证我可以ftp到服务器并手动PUT一个文件.我还使用irb逐行遍历代码.我使用XML文件作为测试,因此"ftp.puttextfile"是失败的行.这是错误:
Net::FTPPermError: 500 Invalid PORT Command.
Run Code Online (Sandbox Code Playgroud)
我不明白.我已经确认我确实可以放这个文件,但我不能用这段代码来做.
我将ftp.debug_mode设置为true,这是ftp.puttextfile命令的输出:
put: TYPE A
get: 200 Type set to A.
put: PORT 10,0,1,20,198,170
get: 500 Invalid PORT Command. …Run Code Online (Sandbox Code Playgroud) 如果所有都具有默认值,是否可以在Python中设置函数调用中的几个参数?
示例:在ftplib.FTP模块中定义:
ftplib.FTP([host[, user[, passwd[, acct[, timeout]]]]])
Run Code Online (Sandbox Code Playgroud)
所有这些参数都有一个默认值,因此您不需要全部设置它们,例如,您可以调用ftp = ftplib.FTP()以获取FTP对象.但是,如果我只想设置timeout参数怎么办?我怎么做到这一点?
是否可以在ftp上写一个txt文件(不要将文件上传到ftp!)直接在ftp服务器上写一个txt文件)并从ftp上的文件中读取(不从ftp下载文件!)直接从txt读取ftp服务器上的文件?我搜索了但发现上传了一个文件,并用FtpWebRequest类下载了一个文件.注意:FTP服务器使用凭据.