在这里,我能够将收到的文件(文件没有已知名称,使用当前日期和时间创建)上传到FTP中。并且以同样的方式我想将该附件作为邮件发送。
我得到的错误是(来自下面代码中的最后一个语句):
文件打开错误。
我无法在发送邮件时选择收到的文件。谁能告诉我为什么以及如何?
$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 :(得分:0)
您正在尝试打开ORIGINAL客户端文件名,该文件名与您服务器上的任何内容完全无关。您服务器上唯一存在的文件是['tmp_name']
中列出的文件,您现在已移至$workdir
。
你的fopen应该是
$file = fopen($workDir . '/' . $tmpName, 'r');
另外,您对用户&gt;网络服务器上传内容绝对没有错误处理,只是假设上传永远不会失败。不好的假设。