0

重複の可能性:
送信は成功するが、結合フォームでアップロードが機能しない

「ファイルのみを送信する」というタイトルの下にあるhereのコードを使用しています。コードは非常にシンプルで小さいですが、「ファイル」を 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 に答える