小编Mar*_*ryl的帖子

使用FTPWebRequest上传期间"请求的URI无效"

我尝试将文件上传到FTP服务器上的目录.我用这个方法FtpWebRequest.我想将一个文件上传到该用户的主目录,但我总是收到以下错误消息:

请求的URI对此FTP命令无效.

有什么问题?我试过关闭被动模式,但它仍然是一样的.

static void FtpUpload()
{


    // Get the object used to communicate with the server.
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://12.22.44.45");
    request.Method = WebRequestMethods.Ftp.UploadFile;
    request.UsePassive = false;

    // This example assumes the FTP site uses anonymous logon.
    request.Credentials = new NetworkCredential("pokus", "password");

    // Copy the contents of the file to the request stream.
    StreamReader sourceStream = new StreamReader(path);
    byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
    sourceStream.Close();
    request.ContentLength = fileContents.Length;

    Stream requestStream = request.GetRequestStream();
    requestStream.Write(fileContents, 0, fileContents.Length);
    requestStream.Close();

    FtpWebResponse response = (FtpWebResponse)request.GetResponse(); …
Run Code Online (Sandbox Code Playgroud)

.net c# ftp ftpwebrequest

14
推荐指数
1
解决办法
2万
查看次数

如何将FTP服务器上的文件复制到Java中同一服务器上的目录?

我正在使用Apache Commons FTP上传文件.在上传之前,我想检查服务器上是否已存在该文件,并从该服务器备份到同一服务器上的备份目录.

有谁知道如何将文件从FTP服务器复制到同一台服务器上的备份目录?

public static void uploadWithCommonsFTP(File fileToBeUpload){
    FTPClient f = new FTPClient();
    FTPFile backupDirectory;
    try {
        f.connect(server.getServer());
        f.login(server.getUsername(), server.getPassword());
        FTPFile[] directories = f.listDirectories();
        FTPFile[] files = f.listFiles();
        for(FTPFile file:directories){
            if (!file.getName().equalsIgnoreCase("backup")) {
                backupDirectory=file;
            } else {
               f.makeDirectory("backup");
            }
        }
        for(FTPFile file: files){
            if(file.getName().equals(fileToBeUpload.getName())){
                //copy file to backupDirectory
            }
        }

    } catch (IOException e) {
        e.printStackTrace();
    }

}
Run Code Online (Sandbox Code Playgroud)

编辑过的代码:仍有问题,当我备份zip文件时,备份文件已损坏.

有没有人知道它的原因?

 public static void backupUploadWithCommonsFTP(File fileToBeUpload) {
    FTPClient f = new FTPClient();
    boolean backupDirectoryExist = false;
    boolean fileToBeUploadExist = …
Run Code Online (Sandbox Code Playgroud)

java ftp ftp-client client-server apache-commons-net

14
推荐指数
1
解决办法
4万
查看次数

在Windows上签署OS X应用程序(无代码签名)

我有可以在Wine下的OS X上运行的Windows应用程序.为方便起见,我想将应用程序打包为OS X应用程序(xxx.app基于WineBottler 的文件夹的ZIP存档).

请注意,应用程序的主要可执行文件(由CFBundleExecutable标记定义Info.plist)是shell脚本,而不是二进制文件.

我想签署应用程序以通过OS X Gatekeeper.由于我的完整构建过程在Windows上运行(因为我实际上根本没有Mac),我需要在Windows上进行签名.

我已经发现签署应用程序会创建_CodeSignature包含四个文件的文件夹:

CodeDirectory
CodeRequirements
CodeResources
CodeSignature
Run Code Online (Sandbox Code Playgroud)

我没有找到任何描述这些文件内容的规范.

实验上,我发现这CodeResources是一个XML文件,其中包含应用程序中所有文件的SHA-1哈希值.我可以产生这个.

CodeRequirements二进制文件的内容似乎是固定的.它似乎没有随应用程序的内容而改变.确认表示赞赏.这个文件有什么用?

至于二进制文件CodeDirectory,CodeSignature我不知道.

两个文件都随应用内容而变化.似乎任何应用程序文件更改(包括纯文本许可证文件)都会影响它们.

CodeSignature显然包含了签名.我可以在文件中看到有关代码签名证书的纯文本信息.有没有可以生成文件的工具?因为它是一个签名,它应该是非常标准的.虽然可能有一些额外的二进制元数据可以使生成更加困难.有谁知道它具体签署了什么?我可以想象它只标记CodeResources文件,因为它描述了应用程序中的所有其他文件.或者它是否实际上递归地签署了应用程序中的所有文件?

原生OS X应用程序CodeResources只有.所以实际上没有签名_CodeSignature.我想这是因为他们在主可执行二进制文件中嵌入了签名.请注意,我的[Windows]二进制文件(虽然它没有Info.plist像上面提到的那样直接引用)是使用Windows进行代码签名的signtool.exe.显然OS X即使没有引用也能识别签名,因为codesign -d -vvv xxx.app输出包含有关证书的信息:

Executable=/Applications/WinSCP.app/Contents/MacOS/startwine
Identifier=WinSCP
Format=bundle with generic
CodeDirectory v=20100 size=135 flags=0x0(none) hashes=1+3 location=embedded
Hash type=sha1 size=20
CDHash=a1ef4f04b2c1b4b793788ce3ab9d7881528f3d95
Signature size=4867
Authority=Martin Prikryl
Authority=VeriSign Class 3 Code Signing 2010 CA …
Run Code Online (Sandbox Code Playgroud)

macos xcode code-signing code-signing-certificate codesign

14
推荐指数
1
解决办法
4361
查看次数

使用FileZilla安排自动每日上传

我想使用FileZilla每天自动将PDF上传到我的GoDaddy托管网站,取代前一天的工作表.有没有办法做到这一点?我在网上看到批处理文件可能有用,有人可以发布批处理文件的样本版本吗?

upload sftp automation ftp-client filezilla

14
推荐指数
1
解决办法
9万
查看次数

在PuTTY命令行上指定私钥

我知道有一些简单的命令登录到远程计算机通过VBA通过指定即User@hostname-pw选项中提供的密码Wshell.Run函数,其中WshellCreateObject("WScript.Shell").

但是,我需要使用私钥文件(在PuTTY中的Connection/SSH/Auth选项下指定),同时通过Excel-VBA宏登录.有办法吗?

我需要它,因为我在我的VBA代码的第二种形式上使用管理员帐户(第一种形式是使用用户自己的帐户),因此无法在第二种形式上提供密码文本框.因此,唯一安全的解决方案是通过公钥和私钥使用SSH登录.

提前致谢!

ssh command-line putty private-key

14
推荐指数
1
解决办法
2万
查看次数

Inno设置:从Internet安装文件

我正在使用Inno Setup来分发我的应用程序.是否可以在Inno Script中查看特定条件,并根据需要从Internet下载并安装一些文件.

inno-setup inno-tools-downloader inno-download-plugin

13
推荐指数
3
解决办法
1万
查看次数

Inno Setup可选(用户可选)文件关联

Inno Setup FAQ中有一个如何为我的软件分配文件类型的示例.处理注册表是没有问题的.

但我怎么能为用户提供的选择的文件类型,他希望分配?假设我已经为文本文件编写了一个简单的编辑器,并想询问用户是否想要将.txt和/或.nfo与我的程序一起分配.带有复选框的设置页面将是天才.

使用Inno Setup如何做到这一点?

inno-setup

13
推荐指数
1
解决办法
5253
查看次数

Apache Commons Net FTPClient中的文件名编码

我必须将文件上传到FTP服务器.文件名包含特殊字母äöü.在FTP服务器上,我需要文件名为UTF-8编码.

我的代码是这样的:

import org.apache.commons.net.ftp.FTPClient;

FTPClient client = new FTPClient();

...

boolean retval = client.storeFile(fileName, inputStream);
Run Code Online (Sandbox Code Playgroud)

问题是之后storeFile,FTP服务器上保存的文件名是ISO-8859-1编码而不是UTF-8.

如何告诉FTPClientUTF-8编码文件名?

java ftp utf-8 apache-commons-net

13
推荐指数
2
解决办法
9647
查看次数

如果进程在Windows 2008 R2 64bit上运行,如何查看Inno Setup?

我看过以下帖子.我的代码看起来完全相同,但不起作用:
Inno Setup检查运行过程

我从http://www.vincenzo.net/isxkb/index.php?title=PSVince复制了这个例子

但是这个例子也不起作用,即使我改变了这样的代码:

[Code]
function IsModuleLoaded(modulename: AnsiString):  Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall';
Run Code Online (Sandbox Code Playgroud)

代码总是返回false(程序没有运行,即使它正在运行).在Windows 2008 R2和Windows 7上测试过.

事实上我想检查,如果它tomcat5.exe正在运行.所以我想我不能用AppMutex.

我也看过https://code.google.com/p/psvince/source/detail?r=5
但我找不到有关该DLL兼容性的任何事实.

完整代码:

[Files]
Source: psvince.dll; Flags: dontcopy

[Code]
function IsModuleLoaded(modulename: AnsiString ):  Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall';

function InitializeSetup(): Boolean;
begin
  if(IsModuleLoaded( 'notepad.exe' )) then
    begin
      MsgBox('Running', mbInformation, MB_OK);
      Result := false;
    end
  else
    begin
      MsgBox('Not running', mbInformation, MB_OK);
      Result := true;
    end
end;
Run Code Online (Sandbox Code Playgroud)

windows inno-setup 32bit-64bit pascalscript

13
推荐指数
3
解决办法
1万
查看次数

如何使用JSch SFTP库解析Java UnknownHostKey?

我正在运行一个java程序,我使用Java SFTP将文件从一个文件夹传输到另一个文件夹.我遇到的问题是我在Java SFTP中遇到以下错误(使用JSch):

C:\ Oracle\Middleware\Oracle_Home\oracle_common\jdk\bin\javaw.exe -server -classpath C:\ JDeveloper\mywork\Java_Hello_World.adf; C:\ JDeveloper\mywork\Java_Hello_World\Client\classes; C:\ Users\ADMIN\Downloads\jsch-0.1.53.jar -Djavax.net.ssl.trustStore = C:\ Users\IBM_AD~1\AppData\Local\Temp\trustStore5840796204189742395.jks FileTransfer com.jcraft.jsch.JSchException:UnknownHostKey: 127.0.0.1.RSA密钥指纹是a2:39:3f:44:88:e9:1f:d7:d1:71:f4:85:98:fb:90:dc at com.jcraft.jsch.Session.checkHost(Session.java: 797)at com.jcraft.jsch.Session.connect(Session.java:342)at com.jcraft.jsch.Session.connect(Session.java:183)at FileTransfer.main(FileTransfer.java:33)进程退出时退出代码0.

以下是我目前的代码:

FileTransfer fileTransfer = new FileTransfer();              

JSch jsch = new JSch();

try {

    String host = "127.0.0.1";
    int port = 22;

    String user = "user";
    Session session = jsch.getSession(user, host, port);      
    session = jsch.getSession("username", "127.0.0.1", 22);
    session.connect();  // bug here , java.net.ConnectException

    ChannelSftp sftp = null;
    sftp = (ChannelSftp)session.openChannel("sftp") ; //channel;

    //extra config code …
Run Code Online (Sandbox Code Playgroud)

java ssh sftp jsch public-key

13
推荐指数
2
解决办法
2万
查看次数