如何使用bluehost cron作业将附件下载到服务器

时间:2014-11-26 09:22:56

标签: php cron-task bluehost

我想运行一个执行php脚本的cron作业。 该脚本的目的是使用从数据库中选择的数据创建csv文件并将其保存在服务器上。 这是我创建的命令:

php -c /home1/breezeea/public_html/php.ini /home1/breezeea/public_html/portaltest/ProductsToImportGenerator.php

我还设置了电子邮件确认,它似乎有效,但该文件不是在uploads目录中创建的。 屏幕显示我收到的确认电子邮件。有csv文件内容,所以我猜php脚本正确执行: enter image description here 这是php脚本代码中最重要的部分($ productsArr是从数据库中恢复的产品):

function products_to_csv($productsArr, $filename = "productsToImport.csv",     $delimiter=",")
{
$f = fopen('php://memory', 'w');    

$headers = array("Product Name", "Product Url", "excerpt", "description", "Product Status", "Menu_order", "SKU", "Downloadable",
                 "Virtual", "visibility", "quantity", "stock status", "allow backorders", "manage_stock", "regular_price",
                 "sale_price", "weight", "length", "width", "height", "featureD", "sale_price_dates_from",
                 "sale_price_dates_to","download_limit", "download_expiry", "images", "download File name", "type", "category",
                 "product_tag", "shipping class");

fputcsv($f, $headers, $delimiter);

foreach($productsArr as $product)
    fputcsv($f, $product, $delimiter);

fseek($f, 0);
header('Content-Type: application/csv');
header('Content-Disposition: attachement; filename="'.$filename.'";');
fpassthru($f);  
fclose($f); 
}

我是否应该以某种方式修改命令以将csv保存在uploads目录中?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您的脚本不会将文件保存在服务器上,它只会将其作为附件发送到打开脚本的浏览器。您应该将fpassthru更改为file_put_contents()以将文件保存在服务器上。