Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从我的VM调用perl代码';在Windows中通过java程序访问Ubuntu机器_Java_Perl_Zipfile - Fatal编程技术网

从我的VM调用perl代码';在Windows中通过java程序访问Ubuntu机器

从我的VM调用perl代码';在Windows中通过java程序访问Ubuntu机器,java,perl,zipfile,Java,Perl,Zipfile,我在虚拟机的ubuntu框中编写了一个perl脚本,它流式处理一组mp4文件,并试图通过java程序从windows调用该脚本。但是我没有在java端接收流文件 我的perl代码如下所示: 通过Windows操作系统中的java程序尝试调用perl: URL URL=newurl(“http://:port>/abc/abc.pl”); 字符串urlStr=url.toString(); HttpURLConnection urlConn=(HttpURLConnection)url.openC

我在虚拟机的ubuntu框中编写了一个perl脚本,它流式处理一组mp4文件,并试图通过java程序从windows调用该脚本。但是我没有在java端接收流文件

我的perl代码如下所示: 通过Windows操作系统中的java程序尝试调用perl:
URL URL=newurl(“http://:port>/abc/abc.pl”);
字符串urlStr=url.toString();
HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
setRequestMethod(“GET”);
urlConn.setUseCaches(真);
urlConn.setDoOutput(真);
InputStream is=urlConn.getInputStream();
回报是;
从上面的inputstream中,我试图将内容导出到zip文件中,但在导出zip文件后,我将作为空文件下载


有人能帮我解决这个问题吗?

有多种可能导致脚本无法工作

  • 您的perl脚本无法工作。
    如果这是您脚本的全部内容,则会出现问题。没有内置的perl
    stream()
    ,您也没有从任何地方导入它。如果从命令行运行perl脚本,它是否工作

  • 带有perl脚本的服务器未配置为将其作为cgi脚本执行。
    在ubuntu框中,运行
    curl“http://localhost:port/abc/abc.pl“
    您是否收到zip数据流、错误或什么都没有?如果没有zip流,则需要配置http服务器以提供cgi脚本

  • 您的服务器不接受连接。
    在windows框中,只需转到浏览器中的地址即可。如果你得到一个zip文件,那么它工作正常

  • 您的java代码错误。
    我在java方面没有足够的经验,不知道可以改变什么。就我所知,它看起来是正确的,但可能需要有人纠正这一点

  • 谢谢你的回复,特伦顿。(1) “stream()”正在对内容进行流式处理,因此没有问题。(2) 当我点击curl“”时,它在浏览器中显示我的perl代码,而不是流式压缩数据或错误。(3) 我不明白这一点。
    use Archive::Zip::SimpleZip qw($SimpleZipError);
    my $z = new Archive::Zip::SimpleZip '-', Stream=>1
    or die "Cannot create zip file: $SimpleZipError\n" ;
    
    $z->add("Users/abc/abc/abc.mp4");                                          
    $z->add("Users/abc/abc/abc1.mp4");
    $z->close();
    
    stream();
    
    URL url = new URL("http://<ubuntu machine ipaddress>:port>/abc/abc.pl");
    String urlStr = url.toString();
    
    HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
    urlConn.setRequestMethod("GET");
    urlConn.setUseCaches(true);
    urlConn.setDoOutput(true);
    InputStream is = urlConn.getInputStream();
    return is;