我想保存文件在服务器目录没有提示屏幕


I want to save file on server directory without prompt screen

提交表单时生成电子表格。出现一个提示,要求我保存文件,但我想当我提交表格,电子表格自动保存在我的服务器目录,例如public_html/apm/test/file.xls.

我该如何处理这个?

之前我使用这个代码

    /* Please acknowledge use of this code by including this header. */
    $data = array(
        array("firstname" => $firstName, "lastname" => $lastName, "age" => $phoneNo, "email" => $email, "dob" => $dob, "mailingAddress" => $mailingAddress, "prescribedPhysician" => $prescribedPhysician, "patientID" => $patientID, "caregiver" => $caregiver, "nameOfCaregiver" => $nameOfCaregiver, "growLocation" => $growLocation, "expirationDate" => $expirationDate, "registrationNo" => $registrationNo, "medicalCondition" => $medicalCondition, "describeMedicalCondition" => $describeMedicalCondition, "grower" => $grower, "tradingCannabis" => $tradingCannabis, "medicalCannabis" => $medicalCannabis, "needCaregiver" => $needCaregiver)
    );
    function cleanData(&$str){
        $str = preg_replace("/'t/", "''t", $str);
        $str = preg_replace("/'r?'n/", "''n", $str);
        if(strstr($str, '"'))
            $str = '"' . str_replace('"', '""', $str) . '"';
    }
    // file name for download
    $filename = $firstName." ".$lastName." ".date('d-m-y') . ".xls";
    header("Content-Disposition: attachment; filename='"$filename'"");
    header("Content-Type: application/vnd.ms-excel");
    $flag = false;
    foreach($data as $row) {
        if(!$flag) {
            // display field/column names as first row
            echo implode("'t", array_keys($row)) . "'n";
            $flag = true;
        }
        array_walk($row, 'cleanData');
        echo implode("'t", array_values($row)) . "'n";
    }
    exit;

你的代码正在做你告诉它要做的事情:"使这个内容可以为web客户端下载。"这是由两个header指令完成的:

header("Content-Disposition: attachment; filename='"$filename'"");
header("Content-Type: application/vnd.ms-excel");

然后,在代码的末尾,您将echo一些内容。这个内容是提供给用户的

如果要在服务器上保存文件,则不能回显文件内容,但必须在服务器上save此内容。您可以使用file_put_contents PHP函数。