如何在PHP中将文件从URL保存到Sourceforge web服务器?

如何在PHP中将文件从URL保存到Sourceforge web服务器?,php,curl,upload,sftp,sourceforge,Php,Curl,Upload,Sftp,Sourceforge,我在SourceForge上有一个简单的web托管。SourceForge上的所有web主机都使用SFTP 现在,我想在另一台服务器上获取一个文件(我没有管理权限;但是,我可以在web浏览器中正常查看它。例如:http://data.example.com/videos/fun.mp4)到我在SourceForge上的web托管(托管结构为:/home/project-web/my-own-project/htdocs/my-folder) 我读过很多问题的答案,比如: 所有答案我都

我在SourceForge上有一个简单的web托管。SourceForge上的所有web主机都使用SFTP

现在,我想在另一台服务器上获取一个文件(我没有管理权限;但是,我可以在web浏览器中正常查看它。例如:
http://data.example.com/videos/fun.mp4
)到我在SourceForge上的web托管(托管结构为:
/home/project-web/my-own-project/htdocs/my-folder

我读过很多问题的答案,比如:

所有答案我都试过了。显示成功消息;但是,我的服务器上没有文件


然后,我尝试将CHMOD更改为
777
(我知道这是损坏;因此,我只尝试进行测试)。而且,也没有文件;在另一个答案中,有一个空文件

我使用了
phpinfo()
对于检查卷曲,它(始终)处于启用状态


你能告诉我我的工作清单上出了什么问题吗。还有,请告诉我:“如何通过PHP将文件从URL上传到SourceForge web hosting?”


我的问题没有重复,存在关于堆栈溢出的问题。
我使用了一个20KB的文件进行测试;但是,我服务器上上载的文件是空的


根据使用政策更新了

由于过去的滥用,从web服务器向外访问其他主机 是严格禁止的,并且被防火墙规则阻止。这 包括对其他SourceForge.net主机的访问;唯一的例外 此策略是对我们的项目数据库服务器的访问和授权 发送电子邮件。无法从项目中访问SCM服务器 网络服务器。其他SourceForge.net主机需要的任何内容 应检索并存储为可能 然后可以从project web服务器上的脚本访问。而我们 PHP安装(和其他语言)包括对以下内容的支持 LDAP、IMAP和Postgres,我们不允许入站或出站 使用这些协议进行连接。这些组件包括在内,因此 第三方代码在部署到上时可以保留库存 SourceForge.net web服务器;并支持项目的测试 需要这些函数的代码

因此,连接到外部主机的能力被防火墙阻止,这是不可能的


请在您的问题中发布您的
phpinfo()
输出。特别是系统详细信息(顶部)、核心、curl、套接字和标准部分值(不包括任何机密信息,如数据库密码/连接)

有很多东西可能会阻止它保存,包括用户权限(在可执行文件上)、服务器配置、suPHP(沙盒用户)、chrooted web目录、php配置等。我们需要查看用于诊断
特定问题的实际代码

对于要尝试的内容,请使用此代码

<?php

if (file_put_contents('/home/project-web/my-own-project/htdocs/my-folder/test.txt', 'Hello World!')) {
   echo 'File Saved Successfully!';
}
我在我的Web服务器上用
5MB
MP4(特别是
http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
-首个mp4下载的谷歌结果)并且运行良好


这将是使其工作的最后一搏。

如果您可以将文件写入您的文件结构,您是否测试过将空文件写入托管的web服务器。e、 g.尝试文件内容(“testfile.txt”,“success”);将代码放入php文件并运行该php文件。在php文件所在的同一目录中查找testfile.txt。如果你能写这个文件,那么它就可以被修复。好的。我忘了问一下,如果您已经在php.ini中验证了
allow\u url\u fopen
是否打开了?说你已经用20KB的文件进行了测试,你的意思是说,你从某个url下载了20KB的文件到托管站点?请检查这是否有帮助。好答案,+1。
<?php

umask(0000); //this sets everything this script interacts with as everyone writable/executable 
//(same as chmod(0777))

$output_path = '/home/project-web/my-own-project/htdocs/my-folder';
$out_file = 'fun.mp4';
$source = file_get_contents('http://data.example.com/videos/fun.mp4');
if (empty($source)) {
  die('No Content Received');
}
if (!@mkdir($output_path, 0777, true) && !is_dir($output_path)){
   die('Unable to create destination directory!');
}
if (file_put_contents($output_path . '/' . $out_file, $source)) {
   echo 'File Saved Successfully!';
}