0

我正在开展一个涉及超市系统的学校项目,我有一台 Shop PC(本地主机)和一台总部服务器(托管在 Amazon EC2 上)。其中一个要求是 Shop PC 将生成一个事务文件(我有一个生成文件的按钮),并且该文本文件需要发送到总部服务器。我在总部服务器上创建了一个具有 777 权限的文件夹。我试图使用 PHP 的复制功能简单地将文件发送/上传到该文件夹​​,但这不起作用。关于我如何做到这一点的任何线索?我没有在亚马逊上安装 ftp,也无法按照要求安装。

此外,我无法在总部管理员上创建上传表单(多部分表单?)来上传文件,因为店员无法访问总部服务器页面。

需要上传文件的文件夹地址为:

"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);

该文件是在商店 PC 上创建的,我想将其发送到总部服务器,在那里可以对其进行解析并添加到总部数据库中。要将文件发送到总部服务器中的上传文件夹,我按照上面的代码:

$filename = "news.txt";
    $newfile = "siteaddress/uploads/" . $filename;
    if(copy($ourFileName, $newfile)) 
    {
    print("<h3> UPLOAD SUCCESSFUL!</h3>");
    } 
    else
    {
    print("<h3>ERROR UPLOADING FILE!</h3>");
    }

讨论后编辑:

总部服务器有 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

也许可以以某种方式直接在此处发送事务文件以进行解析和更新,而不将其存储在上传文件夹中?

4

2 回答 2

1

文件是否使用错误的写入/读取/执行属性传输或根本不传输?

如果文件没有被传输,您是否检查过 php 日志错误?

如果您使用的是副本,那么我假设您已经安装了分区,因此您可以直接访问总部服务器上的文件,如果没有,您可以尝试设置您的 php 以接收文件,看看这个:

http://php.net/manual/en/features.file-upload.post-method.php

如果服务器上没有 php,如何访问它的文件?

于 2012-12-04T10:07:23.673 回答
0

在 Shop PC 中生成文件并将其存储在 HQ Server 可以访问(读取)的位置。

copy应在 HQ Server 中使用PHP 命令从 Shop PC 获取文件。

copy('http://somedomain.com/transaction.txt', '/tmp/transaction.txt');

请注意,您allow_url_fopen必须= onphp.ini.

于 2012-12-04T10:18:35.603 回答