0

サイトでファイルを受信するために EFUMultiple Uploader を使用しています。アップロード フォルダーに新しいファイルまたはファイルのバッチがあるたびに通知を受け取る方法を教えてくれるチュートリアルを知っている人はいますか?

4

2 に答える 2

0

それは迷惑になるでしょう、速く、私はあなたにそれを約束することができます.

いずれにせよ、アップロード スクリプトでは、mail()関数を使用するか、たとえば、PHP インストールで SMTP サーバーが構成されていない場合はPHPMailerライブラリを使用する必要があります。

于 2012-12-30T03:25:29.127 に答える
0

この(テストされていない)スクリプトを検討してください:

#!/usr/bin/env php
<?php
// Warning: this script and UPLOADED_FILES_DB, for security reasons, should not be in UPLOAD_PATH.
define('UPLOAD_PATH', '...');
define('UPLOADED_FILES_DB', 'uploaded_files');

define('MAIL_TO', 'you@example.com');
define('MAIL_FROM', 'cron@example.com');
define('MAIL_SUBJECT', 'Uploaded files');

// Get old files:
if (file_exists(UPLOADED_FILES_DB)) {
    $old_files = unserialize(file_get_contents(UPLOADED_FILES_DB));
} else {
    $old_files = array();
}

// Get current files:
$current_files = array();
foreach (new DirectoryIterator(UPLOAD_PATH) as $file_info) {
    if (!$file_info->isDot()) {
        $current_files[$file_info->getFilename()] = filemtime($file_info->getFilename());
    }
}

// Update database:
file_put_contents(serialize($current_files), UPLOADED_FILES_DB);

// Compute differences:
$added_files = array_diff(array_keys($old_files), array_keys($current_files));
$removed_files = array_diff(array_keys($current_files), array_keys($old_files));
$changed_files = array_diff_assoc($old_files, $current_files);

// Send message:
$headers = 'From: ' . MAIL_FROM . "\r\n";
$message = 'Added files: ' . implode(', ', $added_files);
mail($to, $subject, $message, $headers);

次に、そのスクリプトを cron ジョブに配置して毎日実行するかinclude、アップロード コードがある場所ならどこでも実行できますが、後者の方法はすぐに煩わしくなります。

于 2012-12-30T03:59:43.980 に答える