web-dev-qa-db-ja.com

Wp_mailを使用して連絡先フォームに添付ファイルを追加する

Wp_mailを使って生成されたEメールにアップロードされたファイルを添付する方法を私に説明してくれる人なら誰でも十分に親切でしょうか。私はフォームを作成しましたが、私がオンラインで見つけることができるすべての質問はユーザーによってアップロードされたものよりむしろ予め決められたファイルを添付することに言及します。

編集私は今wp_handle_uploadを使用しようとしています:

if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
$uploadedfile = $_FILES['file'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile ) {
  echo "File is valid, and was successfully uploaded.\n";
  var_dump( $movefile);
} else {
  echo "Possible file upload attack!\n";
}

...しかし、次のエラーが表示されます。「ファイルが空です。もっと充実したものをアップロードしてください...」これは、添付変数を正しく渡していないためと考えられます。

私のフォームフィールドは以下のようになります。

<input type="file" name="uploaded_picture">

どうやってこれら2つを結びつけてください。

4
Kevin Nugent

要するに、私は単に正しい変数を渡すことができていませんでした:

if ( ! function_exists( 'wp_handle_upload' ) ) {
    require_once( ABSPATH . 'wp-admin/includes/file.php' );
}

$uploadedfile       = $_FILES['file'];
$upload_overrides   = array( 'test_form' => false );
$movefile           = wp_handle_upload( $uploadedfile, $upload_overrides );

if( $movefile ) {
    //echo "File is valid, and was successfully uploaded.\n";
    //var_dump( $movefile);
    $attachments = $movefile[ 'file' ];
    wp_mail($to, $subject, strip_tags($message), $headers, $attachments);
} else {
    echo "Possible file upload attack!\n";
}

私のフォームフィールドは、

<input type="file" name="uploaded_file" accept="application/pdf">
3
Kevin Nugent