0

.cmd ファイルと .php ファイルを使用して「古い」フォルダーにファイルを移動しているときに、ファイルの名前を変更しようとしています。このファイルはバッチ ジョブで電子メールで送信され、レポートの最後に前月と現在の年が含まれる古いフォルダーに移動されます。現在: ファイルは正しく電子メールで送信され、古いフォルダーに移動されていますが、「古い」フォルダーに入ったときにファイル名が変更されていません。誰かが私のコードに何か提案をすることはできますか? エラーがどこにあるかを見つけることができないようです。ありがとう

.CMD ファイルの私のコード:

REM Email the 2 monthly stats files regarding gtwinapps
REM The report is sent at 9:20 AM every first monday of every month
REM in C:\Smurf_Reports\gtwinapps\Monthly_Stats
"c:\Program Files\xampp\php\php.exe" d:\batch\monthly_smurfreport_gtwinapps.php
move C:\Smurf_Reports\gtwinapps\Monthly_Stats\gtwinapps_statsmonthly.csv C:\Smurf_Reports\gtwinapps\Monthly_Stats\old

.PHP ファイルの私のコード:

  /*This application pickups up *.csv files from Monthly_Stats folder and then sends     email to ops Support at ops.support@scotiabank.com.
  The command file associated with this php file moves the .csv file into the "OLD"   folder in the same directory

  */

  $dirpath = "C:/Smurf_Reports/gtwinapps/Monthly_Stats/";

  /* Renaming the batch job file to display the previous month and year once it is moved    into the "OLD" folder for clarity purposes */
  rename  ("C:\Smurf_Reports\gtwinsapps\Monthly_Stats\gtwinapps_statsmonthly.csv", "C:\Smurf_Reports\      gtwinapps\Monthly_Stats\old\monthly_gtwinapps_" . date("F_Y", strtotime("-1  month")) . ".csv");
  rename  ("C:\Smurf_Reports\gtwinsapps\Monthly_Stats\monthly.csv", "C:\Smurf_Reports\gtwinapps\Month      ly_Stats\old\gtwinapps_statsmonthly_" . date("F_Y", strtotime("-1 month")) . ".csv");

  if ($handle = opendir($dirpath  )) 
  {

$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";


$headers .= "\nMIME-Version: 1.0\n" .
        "Content-Type: multipart/mixed;\n" .
        " boundary=\"{$mime_boundary}\"";



$email_message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 8bit\n\n" .
$message_text . "\n\n";
$email_message .= "--{$mime_boundary}\n";

    /* This is the correct way to loop over the directory. */
    while (false !== ($entry = readdir($handle)))

{
    if (strpos($entry, '.csv',1))
    {
            $filepath = "";
        $filesize = 0;

        $filepath = $dirpath."".$entry; 
        $filesize = filesize ($filepath);          


        if (file_exists($filepath) && $filesize > 1)
        {
            $fileatt = $filepath;
            $fileatt_name = $entry;

            $fileatt_type = "application/octet-stream";

            $message_text .= "<P>Hi</P>";


            $file = fopen($fileatt,'rb');
            $data = fread($file,filesize($fileatt));
            fclose($file);

            $data = chunk_split(base64_encode($data));

                    $email_message .=  "Content-Type: {$fileatt_type};\n" .
                    " name=\"{$fileatt_name}\"\n" .
                    "Content-Disposition: attachment;\n" .
                    //" filename=\"{$fileatt_name}\"\n" .
                    "Content-Transfer-Encoding: base64\n\n" .
                    $data . "\n\n";
                    $email_message .= "--{$mime_boundary}\n";


        }
        $email_from = "ops.support@yahoo.com";
    //          $email_to = "ops.support@yahoo.com";
        $email_to   = "k.j@yahoo.com,g.h@yahoo.com";

        $lastMonth = date('F-Y',strtotime('last month'));
        $email_subject = "($lastMonth) Monthly Smurf Report for  GTWINAPPS.";

        $headers .= "From: ".$email_from."\r\n";


        echo $filepath."</br>";
    }

}

    closedir($handle);
    $ok = @mail($email_to, $email_subject, $email_message, $headers);
       }
4

1 に答える 1