PHPMailer添加附件
我使用PHPMailer从表单发送数据,它连接正确,适用于我的所有输入字段。除非我在将文件上传作为附件发送时遇到问题 下面是我的addattachment的phpPHPMailer添加附件,php,phpmailer,Php,Phpmailer,我使用PHPMailer从表单发送数据,它连接正确,适用于我的所有输入字段。除非我在将文件上传作为附件发送时遇到问题 下面是我的addattachment的php if(is_array($_FILES)) { $mail->AddAttachment($_FILES['image']['tmp_name'],$_FILES['image']['name']); } 下面是输入文件的HTML,以便您可以看到它的基本内容 <input type="file" id="image
if(is_array($_FILES)) {
$mail->AddAttachment($_FILES['image']['tmp_name'],$_FILES['image']['name']);
}
下面是输入文件的HTML,以便您可以看到它的基本内容
<input type="file" id="image" name="image" class="" />
哦,也就是说,我用的是
我也试过了
if (array_key_exists('image', $_FILES)) {
$uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['image']['name']));
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
$mail->addAttachment($uploadfile, 'UPLOAD file');
}
}
但这也不起作用。同样的问题
如果有人在PHPMailer和Ajax提交文件附件时遇到问题,我将通过进一步研究找到解决方案 使用随附的PHP文档,这与最终的ajax修订版配合使用
if (array_key_exists('userfile', $_FILES)) {
$uploadfile = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['userfile']['name']));
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
// Attach the uploaded file
$mail->addAttachment($uploadfile, $_FILES['userfile']['name']);
//Send the message, check for errors
if (!$mail->send()) {
$msg = 'Sorry, something went wrong. Please try again later.';
} else {
$msg = 'Message sent! Thanks for contacting us.';
}
} else {
}
}
为了提交表单,我需要更改formData并添加数据类型
$(function() {
var form = $('#paymentForm');
$(form).submit(function() {
var formData = new FormData(this);
$.ajax({
type: 'POST',
url: 'mailer.php',
data: formData,
dataType : "json",
contentType: false,
cache: false,
processData: false
})
});
});
通过进一步的研究,我发现了解决方案,如果有人在PHPMailer和Ajax提交文件附件时遇到问题 使用随附的PHP文档,这与最终的ajax修订版配合使用
if (array_key_exists('userfile', $_FILES)) {
$uploadfile = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['userfile']['name']));
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
// Attach the uploaded file
$mail->addAttachment($uploadfile, $_FILES['userfile']['name']);
//Send the message, check for errors
if (!$mail->send()) {
$msg = 'Sorry, something went wrong. Please try again later.';
} else {
$msg = 'Message sent! Thanks for contacting us.';
}
} else {
}
}
为了提交表单,我需要更改formData并添加数据类型
$(function() {
var form = $('#paymentForm');
$(form).submit(function() {
var formData = new FormData(this);
$.ajax({
type: 'POST',
url: 'mailer.php',
data: formData,
dataType : "json",
contentType: false,
cache: false,
processData: false
})
});
});
您尝试使用了吗?是的,它返回完全相同的结果。如果您先检查索引是否存在,则无法获得未定义的索引错误。什么是
var\u转储($\u文件)代码>显示?该错误消息是否链接到特定行,可能是您在此处未显示的代码?var_dump仅显示array(0){}
,因此解释了$\u文件['image']
错误。如果您在浏览器中使用开发工具,它是否在文章正文中显示正确的内容?如果是这样,您可能会在PHP配置中禁用文件上载。已读。是否尝试使用?是的,它返回完全相同的结果。如果先检查索引是否存在,则无法获得未定义的索引错误。什么是var\u转储($\u文件)代码>显示?该错误消息是否链接到特定行,可能是您在此处未显示的代码?var_dump仅显示array(0){}
,因此解释了$\u文件['image']
错误。如果您在浏览器中使用开发工具,它是否在文章正文中显示正确的内容?如果是这样,您可能会在PHP配置中禁用文件上载。阅读