0

可能重复:
提交成功但上传在组合表单中不起作用

我正在使用“仅提交文件”标题下的代码。代码真的很简单,很小,但是当我console.log“文件”时,它没有位置,webkitrelativepath是“”,我可以在提交时看到文件名,大小等。我需要将其发布到我的 feedback.php 文件中并将其附加到电子邮件中,但我不知道如何将文件从 formData 中取出并上传到我的上传文件夹中,这样我就可以- 邮寄...

谢谢。

编辑:

我目前正在使用什么代码:

var fileInput = document.getElementById('file-upload-field');
var file = fileInput.files[0];
var formData = new FormData();
formData.append('file', file);
console.log(file);

$.ajax({
  url: baseUrl + "feedback.php",
  data: file,
  cache: false,
  contentType: false,
  processData: false,
  type: 'POST',
  success: function(file){
    alert(file);
  }
});

在我的 feedback.php

  foreach($_FILES as $file){
    $target_path = "uploads/";
    $target_path = $target_path .basename($file['name']);



if(move_uploaded_file($file['tmp_name'], $target_path)) {
echo "the file ".basename($file['name'])." has been uploaded";
}
else {
 echo "there was an error";
}
$mail->AddAttachment($target_path);

}

这不会在任何地方上传或附加任何文件......

4

1 回答 1

0

只需上传文件

move_uploaded_file(string $filename , string $destination );

而不是作为附件邮寄,如下所示:

require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->Host = 'smtp_host';      
$mail->Port = 'smtp_port';
$mail->SMTPAuth = true;         
$mail->Username = 'smtp_user';  // SMTP username
$mail->Password = 'smtp_pass';  // SMTP password
$mail->From = "from@abc.ocm";
$mail->FromName = "fromName";
$mail->AddAddress($email);
$mail->Subject = "Your subject line";
$mail->AddAttachment($source, $fileName);
$mail->Body = "Your Message";

// Send the email.
if(!$mail->Send())
    $message = "Displya some error.";

}

于 2013-01-07T10:13:17.253 回答