2012-04-11 71 views
5

我正在尝试在Powershell中使用FTP来上传文件。我使用FtpWebRequest后接着GetRequestStream,但这种方法返回一个错误:如何在Powershell中使用FTP上传代理服务器?

"The requested FTP command is not supported when using HTTP proxy."

我确实在代理和需要。

如何在通过代理传递后通过Powershell进行上传?

这将从一个.ps1 PowerShell脚本完全运行。

我也曾尝试:

$webclient = New-Object System.Net.WebClient 
$uri = New-Object System.Uri($server) 

$webclient.UploadFile($uri, "C:\Test\1234567.txt") 

$server而该文件是有效的。但是,该代码返回此错误:

"An exception occurred during a WebClient request." 
At C:\Test\script.ps1:101 char:26 
+  $webclient.UploadFile <<<< ($uri, "C:\Test\1234567.txt") 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : DotNetMethodException 

我也试图在文件路径双反斜杠,并没有帮助。

我下的代理只接触HTTP,而不是FTP。

回答

4

您确定您的代理支持FTP,还是仅HTTP?看到这个线程:

FTP File Upload with HTTP Proxy

对于Web客户端我用这个在过去,尽管它是为HTTP使用的,但你可以试试看:

$wc = New-Object System.Net.WebClient 
$wc.Headers.Add("User-Agent","Mozilla/4.0+")   
$wc.Proxy = [System.Net.WebRequest]::DefaultWebProxy 
$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials 
$wc.UploadFile($uri, "C:\Test\1234567.txt") 

注意 - “大UploadFile方法将本地文件发送到资源,该方法使用STOR命令上传FTP资源,对于HTTP资源使用POST方法。

+0

我已经检查过,而且我只接触HTTP而不是FTP。我正在尝试该代码,但得到'异常调用“UploadFile”与“2”参数:“在WebClient请求期间发生异常。”' – JBurace 2012-04-16 21:47:23