簡體   English   中英

從php發送電子郵件附件並上傳ftp

[英]Send email attachment from php and upload ftp

在這里,我可以將接收到的文件(文件名稱未知,它是用當前日期和時間創建的)上傳到FTP。 而且我想以同樣的方式將該附件作為郵件發送。

我得到的錯誤是(來自下面代碼的最后一條語句):

文件打開錯誤。

發送郵件時,我無法選擇接收到php中的文件。 有人可以告訴我原因和方式嗎?

$destDir = 'myweb.net/name/' .$dir;
 $workDir = 'tmpfiles';// define this as per local system

 // get temporary file name for the uploaded file
$tmpName = basename($_FILES['uploadedfile']['tmp_name']);
$fileName = basename($_FILES['uploadedfile']['name']);

// copy uploaded file into current directory
move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$workDir."/".$tmpName)
 or die("Cannot move uploaded file to working directory");

// open connection
$conn = ftp_connect($ftp_server) or die ("Cannot initiate connection to host");

// send access parameters
ftp_login($conn, 'abcd', 'saddad') or die("Cannot login");

// perform file upload
$upload = ftp_put($conn, $destDir."/".$_FILES['uploadedfile']['name'],$workDir."/".$tmpName, FTP_BINARY);

// check upload status
// display message
if (!$upload) {
 echo "Cannot upload<br />\n";
} else {


 $to = $Remail;
 $subject = "This is subject";
 $message = "This is test message.";
// Open a file
 $file = fopen($_FILES['uploadedfile']['name'], "r" );
 if( $file == false )
  {
 echo "Error in opening file";
 exit();
 }

您正在嘗試打開原始客戶端文件名,該文件名與服務器上的任何文件都沒有任何關系。 服務器上存在的唯一文件是['tmp_name']列出的文件,您現在將其移至$workdir

你的打開時間應該是

$file = fopen($workDir . '/' . $tmpName, 'r');

另外,您對用戶->網絡服務器上載的東西絕對沒有錯誤處理,只需假設上載永遠不會失敗。 錯誤的假設。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM