Php 动态创建多个上载文件
我想知道是否有人知道动态创建上传表单的最佳方法 以下是我试图实现的目标:下面显示的代码允许一次上传,我想有一个按钮,当按下时,应该为文件上传添加另一个表单。所以,如果我想上传——比方说7个文件,我想按下按钮7次来创建这些上传表单,每个表单都在它自己的行上 还有什么我能做的吗 感谢您的帮助:Php 动态创建多个上载文件,php,javascript,html,Php,Javascript,Html,我想知道是否有人知道动态创建上传表单的最佳方法 以下是我试图实现的目标:下面显示的代码允许一次上传,我想有一个按钮,当按下时,应该为文件上传添加另一个表单。所以,如果我想上传——比方说7个文件,我想按下按钮7次来创建这些上传表单,每个表单都在它自己的行上 还有什么我能做的吗 感谢您的帮助: <html> <head> <title> Multiple File Uploads </title> </head&g
<html>
<head>
<title> Multiple File Uploads </title>
</head>
<body>
<form enctype="multipart/form-data" action="uploader.php" method="POST">
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>
多文件上传
选择要上载的文件:
请看这里的一个简单示例
JoshjQuery有一个很好的插件,我用过它叫MultiFile。你可能想看看
您可以尝试这个名为 你可以试试看
只需确保在服务器上正确处理文件,因为Flash有时会以不同的方式将数据发布到服务器。因此,如果您有某种方法来检查请求值中的内容,那么您应该很好。通常您会这样做,客户端:
<div id='Uploadcontainer'>
<input type='file' name='uploadfiles[]' class='uploadfile' />
</div>
<button id='extraUpload'>Add another field</button>
<script type='text/javascript'>
$('#extraUpload').click(function(){
$('.uploadfile:last').clone().appendTo('#uploadContainer');
});
</script>
目前没有办法用纯HTML实现这一点。我认为最新版本的浏览器和即将发布的HTML5规范已经开始解决这个问题
大多数当前的跨浏览器解决方案都需要一个JS库(我认为还有Flash)。另一种选择是使用每个文件自己的输入元素分别选择每个文件。出于显而易见的原因,浏览器对文件上传元素的脚本编写和显示实施了非常严格的安全性,这会使它们难以使用。这里有一个非常简单的安全性,适用于FireFox、Chrome和IE7。 我真的建议您检查一个javascript框架,比如jQuery,它会让您的生活更轻松
<div id='Uploadcontainer'>
<input type='file' name='uploadfiles[]' class='uploadfile' />
</div>
<button id='extraUpload' onclick="return addAnother('Uploadcontainer')">Add another field</button>
<script type='text/javascript'>
function addAnother(hookID)
{
var hook = document.getElementById(hookID);
var el = document.createElement('input');
el.className = 'uploadfile';
el.setAttribute('type','file');
el.setAttribute('name','uploadfiles[]');
hook.appendChild(el);
return false;
}
添加另一个字段
函数addother(hookID)
{
var hook=document.getElementById(hookID);
var el=document.createElement('input');
el.className='uploadfile';
el.setAttribute('type','file');
el.setAttribute('name','uploadfiles[]);
钩状附属物(el);
返回false;
}
感谢Josh的迅速回复。我看到这个解决方案使用JQuery,我以前从未使用过它。那么,您是否想知道,如果不使用任何第三方框架,是否也可以实现相同的结果?嘿,tschaible,也谢谢您的提示。有没有办法不使用JQuery或任何其他框架就实现同样的功能?这是一条非常有前途的路线,感谢Pim提供了这段伟大的代码。我将从那里继续下去。如果我撞到墙,我会喊你们的。你们一直都很好——保持幸运,祝你们好运:)
<div id='Uploadcontainer'>
<input type='file' name='uploadfiles[]' class='uploadfile' />
</div>
<button id='extraUpload' onclick="return addAnother('Uploadcontainer')">Add another field</button>
<script type='text/javascript'>
function addAnother(hookID)
{
var hook = document.getElementById(hookID);
var el = document.createElement('input');
el.className = 'uploadfile';
el.setAttribute('type','file');
el.setAttribute('name','uploadfiles[]');
hook.appendChild(el);
return false;
}