swift pdf文件未附加到电子邮件中

时间:2016-01-13 16:16:27

标签: swift pdf mfmailcomposeviewcontroller

我有以下代码,假设附加一个名为" file.pdf"的文件。它被创建并放入临时目录中

pdfFileUrl = "\(NSTemporaryDirectory())file.pdf" 

但是电子邮件没有附件,因为我期待

@IBAction func sendEmail(sender: AnyObject) {

    createReportPDF()

    if MFMailComposeViewController.canSendMail() {
        let mail = MFMailComposeViewController()
        mail.mailComposeDelegate = self
        mail.setToRecipients(["dpreston10@gmail.com"])
        mail.setMessageBody("<p>You're so awesome!</p>", isHTML: true)
        if let filePath = NSBundle.mainBundle().pathForResource(pdfFileUrl, ofType: "pdf") {
            print("File path loaded.")

            if let fileData = NSData(contentsOfFile: filePath) {
                print("File data loaded.")
                mail.addAttachmentData(fileData, mimeType: "application/pdf", fileName: "file.pdf")
            }
        }

        presentViewController(mail, animated: true, completion: nil)
    } else {
        // show failure alert
    }
}

1 个答案:

答案 0 :(得分:0)

由于您的文件已放入用户的临时文件夹,因此我认为无法通过NSBundle方法访问该文件。也就是说,如果您将NSData写入临时文件夹中的磁盘,然后直接通过电子邮件发送,您可能需要考虑将该变量(pdfData)传递给邮件控制器,如:

mail.addAttachmentData(pdfData, mimeType: "application/pdf", fileName: "file.pdf")