Отправка изображения через вложение электронной почты, которое хранится в строке - PullRequest
0 голосов
/ 05 августа 2011

Скажите, если у меня была строка, в которой был сохранен этот текст / html:

Hello. This is a test article. <img src="http://hellotxt.com/image/jpFd.n.jpg" />

Я хочу, чтобы изображение было загружено / сохранено во временную папку, а затем отправлено в виде вложения по электронной почте. Затем желательно удалить временную папку. Возможно ли это?
Я знаю, как отправить электронное письмо с вложением (самая простая часть), так что это не проблема. Это просто загрузка изображения в папку и поиск изображения в строке.

1 Ответ

2 голосов
/ 05 августа 2011

Хорошо, так что это в основном вопрос из двух частей:

  1. Как извлечь имя файла / источник из строки
  2. Как загрузить указанный файл на сервер
  1. Проверьте функцию preg_match (используйте preg_match_all, если у вас есть несколько файлов в одной строке)
    
        $matches = array();
    
        $numFound = preg_match( "/src[\s]?=[\s]?[\" | \'](^[\" | \'])*[\" | \']/", $yourInputString, $matches );
    
        echo $matches[1]; //this will print out the source (the part in parens in the regex)
        
    Я не очень хорошо разбираюсь в regexp, поэтому тот, который я предоставил, может быть неправильным, но я думаю, что он должен работать.
  2. Хорошо, теперь для загрузки части ... Предполагая, что это прямой PHP (нет HTML, формы доступны), тогда я думаю, что вам лучше всего использовать cURL и подражать отправке формы. Вам понадобится PHP-скрипт, который будет принимать загруженный файл и перемещать его в папку на вашем сервере (это должно помочь). Фактическая загрузка будет сделана так:
    
        $data = array('file' => '@' . $fileSourceFromPart1); //the '@' is VITAL!
        $ch = curl_init();
    
        curl_setopt($ch, CURLOPT_URL, 'path/to/upload/script.php');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    
        curl_exec($ch);
    
        

Надеюсь, это поможет, или, по крайней мере, направит вас в правильном направлении!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...