2014-08-27 96 views
0

在这里,我可以将接收到的文件(文件没有已知名称,它是用当前日期和时间创建的)上载到FTP中。同样,我想将该附件作为邮件发送。从php发送电子邮件附件并上传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(); 
} 

回答

0

您试图打开原始客户端文件名,它与服务器上的任何内容都没有任何关系。您服务器上唯一存在的文件是['tmp_name']中列出的文件,您现在已将其移至$workdir

你的fopen应

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

另外,你绝对没有错误处理的用户> web服务器上传的东西,只是假设上传可能永远不会失败。错误的假设。

+0

嗯,谢谢你的建议,只是我正在学习.. – Avis 2014-08-27 19:46:03