2

こんにちは、name="file1" のファイル アップロード フィールドと phpmailer スクリプトのコードがあります。

if (isset($_FILES['file1']))
{
$file1_path = $_FILES['file1']['tmp_name'];
$file1_name = $_FILES['file1']['name'];
$file1_type = $_FILES['file1']['type'];
$file1_error = $_FILES['file1']['error'];
$mail->AddAttachment($file1_path);
}

そして、何らかの理由で、php45we34のように添付されました(毎回差分、実際のファイルではなく、一時的な名前のパスのようです)

何か助けはありますか?

4

3 に答える 3

2

ファイル名からスペースを削除してください!

Blue hills.jpgする必要がありますBlue_hills.jpg

行う

$fileName = str_replace(' ', '_', $fileName);

于 2011-11-24T13:58:39.203 に答える
1

添付ファイルを追加する前に、関数move_uploaded_fileを使用することをお勧めします。

これは、サーバーの一時的な場所からファイルを移動するサンプルコードです

$target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

その後、AddAttachmentは正常に機能するはずです。

$mail->AddAttachment(basename($target_path . $_FILES['uploadedfile']['name']));
于 2011-07-14T20:05:23.287 に答える
1

あなたが見るものは、何が起こるべきかです。添付ファイル名を指定しないので、phpMailer は添付する一時ファイルの名前を使用します。

ファイルに別の名前を付けたい場合は、それを指定する必要があります。受け入れられた答えは、逆の方向に進むため機能します-ファイル名を変更して、ファイルが目的の名前になるようにします。

続行する通常の方法は、発行することです

$mail->AddAttachment($file1_path, $_FILES['file1']['name']);

添付ファイル名をオーバーライドします。

于 2012-11-06T03:07:50.703 に答える