通过电子邮件附件发送图像,该附件存储在字符串中

时间:2011-08-04 22:39:06

标签: php image email attachment uploading

假如我有一个字符串,其中存有此text / html:

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

我希望将图片上传/保存在临时文件夹中,然后通过电子邮件作为附件发送。然后最好删除临时文件夹。这有可能吗?
我知道如何发送带附件的电子邮件(简单部分),这样就没问题了。这只是将图像上传到文件夹中并在字符串中查找图像。

1 个答案:

答案 0 :(得分:2)

好的,这基本上是一个2部分的问题:

  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);
      
          
    3. 希望这就是诀窍,或者至少让你朝着正确的方向前进!