Nano Hash - криптовалюты, майнинг, программирование

отправка php excel в виде вложения с использованием почты php

У меня есть следующее:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_start();
$objWriter->save("php://output");
$xlsData = ob_get_contents();
$xlsData1= "data:application/vnd.ms-excel;base64,".base64_encode($xlsData);
ob_end_clean();


        //Require for mailing functionality
        require_once('../../PHPMailer/PHPMailer-master/class.phpmailer.php');

        //Send mail function
        $mail= new PHPMailer(); // defaults to using php "mail()"
        $sender ="emailadddress";
        $mail->SetFrom($sender);
        $mail->AddAddress('emailaddress');   
        $mail->Subject="Combined repair and production report from ".$reportDate;
        $encoding = "base64"; 
        //$type = "image/png";
        $mail->AddStringAttachment(base64_decode($xlsData1), "combined_report".$reportDate."xlsx");  
        //$mail->AddAttachment($xlsData, $filename);
        $message= "Please see attached combined report";
        $message = "</body></html>";              
        $mail->MsgHTML($message);    

        if(!$mail->Send()) 
        {
            $response =  array(
                'op' => 'failed',
                'file' => "data:application/vnd.ms-excel;base64,".base64_encode($xlsData)
            );
        } 
        else 
        {
            $response =  array(
                'op' => 'ok',
                'file' => "data:application/vnd.ms-excel;base64,".base64_encode($xlsData)
            );

        } 





die(json_encode($response));
pg_close($conn);

это отправляет электронное письмо с вложением, но вложение представляет собой пустой файл. Когда я пытаюсь сохранить его, он имеет имя файла и расширение, подобное этому: «filenamexlsx», поэтому похоже, что он не получает правильный формат xlsx. Я тоже пробовал это:

$mail->AddStringAttachment("data:application/vnd.ms-excel;base64,".base64_encode($xlsData);  

Я также пробовал:

    $encoding = "base64"; 
    $type = "application/vnd.ms-excel"; // and :application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    $mail->AddStringAttachment(base64_decode($xlsData1), "combined_report".$reportDate."xlsx",$encoding,$type);

Я также пытался использовать AddAttachment() вместо вложения строки, и при этом в электронном письме нет вложения.

Я выполнил: php отправить электронное письмо с вложением

а также рассмотрел несколько вещей, таких как PHPMailer, AddStringAttachment и Data URI. Схема

но, похоже, он не работает :( любая помощь будет оценена!

29.03.2017

  • $reportDate."xlsx" должно быть $reportDate.".xlsx" 29.03.2017
  • ну, ты не позволил мне принять ответ, и я не хотел, чтобы другие останавливались из-за такой маленькой ошибки. извините, я новичок в размещении вопросов и т. д. 29.03.2017
  • Вы случайно не знаете, почему я все еще получаю сообщение об ошибке, говорящее о том, что файл поврежден? Можете ли вы помочь мне найти какие-либо другие ошибки? 29.03.2017
  • Я понял это, спасибо... На всякий случай, если это поможет кому-то еще в будущем, вы должны '$xlsData = ob_get_contents(); $contact_image_data=данные:приложение/vnd.ms-excel;base64,.base64_encode($xlsData); $data = substr($contact_image_data, strpos($contact_image_data, ,)); и затем $mail-›AddStringAttachment(base64_decode($data),combined_report_.xlsx,$encoding,$type);< /б> 29.03.2017

Ответы:


1

Я думаю, что в вашем имени файла есть ошибка. Имя вашего файла должно быть filename.xlsx, а не это filenamexlsx.

29.03.2017
  • Боже, ты прав, глупый синтаксис php меня сбил с толку... спасибо, спасибо за помощь! 29.03.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..


    © 2024 nano-hash.ru, Nano Hash - криптовалюты, майнинг, программирование