使用PHP将文件上传到777文件夹

时间:2012-12-04 09:44:10

标签: php file-upload amazon-ec2 777

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

另外,我无法在HQ admim上创建上传表单(多部分表单?)来上传文件,因为商店人员无法访问HQ服务器页面。

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

"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上创建,我想将其发送到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>");
    }

在讨论后进行修改:

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

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

2 个答案:

答案 0 :(得分:1)

是否使用错误的写/读/执行属性传输文件?

如果文件未转移,您是否检查过php日志错误?

如果您正在使用副本,那么我假设您已安装分区,因此您可以直接访问HQ服务器上的文件,如果不是,您可以尝试设置您的php以接收文件,请看一下:< / p>

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

如果您在服务器上没有php,那么如何访问其文件?

答案 1 :(得分:0)

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

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

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

请注意,allow_url_fopen= on必须php.ini