简体   繁体   English

如何轻松允许用户上传多个文件?

[英]How can I easily allow users to upload multiple files?

I'm looking for a very easy way to allow users to upload files (html) to my site. 我正在寻找一种非常简单的方法来允许用户将文件(html)上传到我的网站。 I've tried things like plupload and uploadify and they seem to difficult to implement/buggy. 我尝试了诸如plupload和uploadify之类的东西,它们似乎难以实现/笨拙。 Are there any simple solutions out there? 有没有简单的解决方案?

I actually just worked on this issue recently. 实际上,我最近才刚刚处理此问题。 Ill let you use my code i wrote. 虐待让您使用我编写的代码。 What it does is as soon as a user browses for one file, another upload box pops up and so on and so on. 它的作用是,用户浏览一个文件,弹出另一个上传框,依此类推。 And then, i use phpmailer to send the files as email attachments. 然后,我使用phpmailer将文件作为电子邮件附件发送。 Look up phpmailer for more details... 查找phpmailer了解更多详细信息...

The javascript to add more upload fields.. (put in HEAD) 添加更多上传字段的javascript。(放入HEAD)

<script type="text/javascript">   
function addElement()
        {
            var ni = document.getElementById('org_div1');
            var numi = document.getElementById('theValue');
            var num = (document.getElementById('theValue').value -1)+ 2;
            numi.value = num;
            var newDiv = document.createElement('div');
            var divIdName = num;  newDiv.setAttribute('id',divIdName);

            newDiv.innerHTML = '<input type="file"  class="fileupload" size="80" name="file' + (num) + '" onchange="addElement()"/> <a class="removelink" onclick=\'removeElement(' + divIdName + ')\'>Remove This File</a>';

            // add the newly created element and it's content into the DOM
            ni.appendChild(newDiv);
        }

        function removeElement(divNum)
        {
            var d = document.getElementById('org_div1');
            var olddiv = document.getElementById(divNum);

            d.removeChild(olddiv);
        }

    </script>

The HTML.. HTML ..

<div id="org_div1" class="file_wrapper_input">

                        <input type="hidden" value="1" id="theValue" />
<input type="file" class="fileupload" name="file1" size=
"80" onchange="addElement()" /></div>

The process.php page. process.php页面。 NOTE: MUST EDIT!!! 注意:必须编辑!!! Search phpmailer and download their class.phpmailer.css class. 搜索phpmailer并下载其class.phpmailer.css类。 Edit the configs in the file. 编辑文件中的配置。 Create and "uploads" directory. 创建并“上传”目录。

<?php
require("css/class.phpmailer.php");





//Variables Declaration
$name = "Purchase Form";
$email_subject = "New Purchase Ticket";

$body = "geg";

foreach ($_REQUEST as $field_name => $value){
if (!empty($value)) $body .= "$field_name = $value\n\r";
}
$Email_to = "blank@blank.com"; // the one that recieves the email
$email_from = "No reply!";
//
//==== PHP Mailer With Attachment Func ====\\
//
//
//
$mail = new PHPMailer();

$mail->IsQmail();// send via SMTP MUST EDIT!!!!!
$mail->From = $email_from;
$mail->FromName = $name;
$mail->AddAddress($Email_to);
$mail->AddReplyTo($email_from);

foreach($_FILES as $key => $file){
$target_path = "uploads/";
$target_path = $target_path .basename($file['name']);

if(move_uploaded_file($file['tmp_name'], $target_path)) {
echo "the file ".basename($file['name'])." has been uploaded";
}else {
 echo "there was an error";
}
$mail->AddAttachment($target_path);
}
$mail->Body = $body;
$mail->IsHTML(false);
$mail->Subject = $email_subject;
if(!$mail->Send())
{  echo "didnt work";
}
else {echo "Message has been sent";}


foreach($_FILES as $key => $file){
$target_path = "uploads/";
$target_path = $target_path .basename($file['name']);
unlink($target_path);}
}










?>

Let me know if you have any questions!! 如果您有任何问题,请告诉我!!

Check out the jQuery Mulitple File Upload Plugin . 查看jQuery Mulitple File Upload Plugin The Uploading multiple files page in the PHP documentation will give you an idea what the submitted result looks like and some examples for working with it. PHP文档中的“ 上传多个文件”页面将使您了解提交的结果的外观以及一些使用该结果的示例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM