使用PHP将文件上载到777文件夹
我正在从事一个学校项目,该项目涉及一个超市系统,我有一台商店PC(本地主机)和一台HQ服务器(托管在Amazon EC2上)。其中一个要求是,Shop PC将生成一个事务文件(我有一个生成该文件的按钮),该文本文件需要发送到HQ服务器。我在HQ服务器上创建了一个具有777权限的文件夹。我试图简单地使用PHP的copy功能将文件发送/上传到该文件夹,但这不起作用。关于我如何做到这一点有什么线索吗?我没有在亚马逊上安装ftp,不能按照要求安装 此外,我无法在HQ admim上创建上载表单(多部分表单?)来上载文件,因为店员无法访问HQ服务器页面 需要上载文件的文件夹的地址为:使用PHP将文件上载到777文件夹,php,file-upload,amazon-ec2,777,Php,File Upload,Amazon Ec2,777,我正在从事一个学校项目,该项目涉及一个超市系统,我有一台商店PC(本地主机)和一台HQ服务器(托管在Amazon EC2上)。其中一个要求是,Shop PC将生成一个事务文件(我有一个生成该文件的按钮),该文本文件需要发送到HQ服务器。我在HQ服务器上创建了一个具有777权限的文件夹。我试图简单地使用PHP的copy功能将文件发送/上传到该文件夹,但这不起作用。关于我如何做到这一点有什么线索吗?我没有在亚马逊上安装ftp,不能按照要求安装 此外,我无法在HQ admim上创建上载表单(多部分表单
"site address"/uploads
我以以下方式创建事务文件:
$ourFileName = "transaction.txt";
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
//fwrite($fh, $stringData);
$sql = mysql_query("the query");
while($row=mysql_fetch_array($sql)){
$stringData = "data";
fwrite($ourFileHandle, $stringData);
}
fclose($ourFileHandle);
这个文件是在shop PC上创建的,我想将它发送到HQ服务器,在那里可以解析并添加到HQ数据库。要将文件发送到HQ服务器中的uploads文件夹,我遵循上面的代码:
$filename = "news.txt";
$newfile = "siteaddress/uploads/" . $filename;
if(copy($ourFileName, $newfile))
{
print("<h3> UPLOAD SUCCESSFUL!</h3>");
}
else
{
print("<h3>ERROR UPLOADING FILE!</h3>");
}
$filename=“news.txt”;
$newfile=“siteaddress/uploads/”$文件名;
如果(复制($ourFileName,$newfile))
{
打印(“上传成功!”);
}
其他的
{
打印(“上传文件时出错!”);
}
在讨论后编辑:
HQ服务器有php。事实上,它在parse_transaction.php中定义了一个文件解析器,其开头如下:
<?php
include "../storescripts/connect_to_mysql_HQ.php";
mysql_query($sql);
mysql_query($sql2);
mysql_query($sql3);
$filename= mysql_real_escape_string($_FILES["file"]["tmp_name"]);
$lines = file($filename); // slurp file and split into an array by lines
文件传输时是否使用了错误的写入/读取/执行属性
如果文件未被传输,是否检查了php日志错误
如果您使用的是copy,那么我假设您已经挂载了分区,因此您可以直接访问HQ服务器上的文件,如果没有,您可以尝试设置php以接收文件,请查看以下内容:
http://php.net/manual/en/features.file-upload.post-method.php
如果服务器上没有php,如何访问其文件?在Shop PC中生成文件,并将其存储在HQ server可以访问(读取)的位置
应在HQ Server中使用PHP命令copy
,以从商店PC获取文件
copy('http://somedomain.com/transaction.txt', '/tmp/transaction.txt');
请注意,在php.ini
中,您需要allow\u url\u fopen
必须是=on
,文件根本不会被传输。看到前面的评论,我想我无法使用copy,因为我正在尝试将文件从本地服务器复制到远程服务器。另外,如果我创建了一个表单,那么上传将需要手动完成?事务文件将使用php编写的解析器进行解析,然后详细信息将用于更新该商店的数据库。如果您想这样做,您可以使用前面提到的上传后方法,将文件从一个php服务器上传到另一个php服务器,您可能希望查看cURL,并在“clientside”服务器上的php.ini中启用它,查看“4.3文件上传帖子”,这听起来很完美!我在HQ服务器上也有一个表单来上传交易文件。我可以直接寄到那个表格吗?那就解决问题了!你能详细介绍一下如何使用CURL语句吗?是的,你可以直接发布它们,这里有两个很好的入门参考资料:这将涉及总部管理员手动检查每台商店PC,如果它是否有事务文件。不是可扩展的解决方案在生成文件后,您的商店PC可能会向HQ Server发送HTTP请求,因此我们可以确保存在事务文件。