Uploadify是一个jQuery插件,允许在您的网站上轻松集成多个(或单个)文件上传。它需要Flash和任何后端开发语言。一系列选项允许为高级用户进行完全自定义,但基本实现非常简单,即使编码新手也可以这样做。
我想询问是否可以通过Uploadify的电子邮件通知发送刚刚上传的文件的链接。
以下是uploadify.php的代码:
<?php
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
// $fileTypes = str_replace('*.','',$_REQUEST['fileext']);
// $fileTypes = str_replace(';','|',$fileTypes);
// $typesArray = split('\|',$fileTypes);
// $fileParts = pathinfo($_FILES['Filedata']['name']);
// if (in_array($fileParts['extension'],$typesArray)) {
// Uncomment the following line if you want to make the directory if it doesn't exist
// mkdir(str_replace('//','/',$targetPath), 0755, true);
move_uploaded_file($tempFile,$targetFile);
echo "1";
// } else {
// echo 'Invalid file type.';
// }
}
//define the receiver of the email
$to = 'admin@admin.com';
//define the subject of the email
$subject = 'Test email';
//define the message to be sent. Each line should be separated with \n
$message = "Hello World!\n\nThis is my first mail.";
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
?>
答案 0 :(得分:0)
类似的东西:
<?PHP
$fileURL = 'http://' . $_SERVER['HTTP_HOST'] . $_REQUEST['folder'] . '/' . $_FILES['Filedata']['name'];
// ...
$message = "You can download the file from: {$fileURL}";
// ...
$mail_sent = @mail( $to, $subject, $message, $headers );
//...
答案 1 :(得分:0)
您的脚本容易受到文件名冲突的影响。您是使用用户提供的原始名称上传的。如果多次使用相同的文件名,您将使用新文件覆盖以前的版本。
同样,您盲目地使用表单值来指定存储上载的位置。如果有人为文件夹指定“../../../../../../../../../etc”,为文件名指定“passwd”,会发生什么?或者在Windows服务器上“../../../../../../../../windows/system32”和“ntoskrnl.exe”?如果网络服务器错误配置了它正在运行的用户ID,那么您刚刚打开机器进行完全远程攻击。但即使他们不想破坏系统,他们也能够轻松地删除站点文档根目录中的任何文件。
话虽如此,如果要嵌入直接下载文件的链接,则必须构建HTML格式的电子邮件,或者希望邮件客户端可以自动链接看起来像URL的文本。构建用于mail()
函数的HTML邮件是一件非常痛苦的事。我将PHPMailer用于我的项目。它运行良好,允许您构建任何类型的电子邮件。