Javascript 带文件上传的多步骤表单
我有一个多步骤的表格。我想在这里实现的是允许用户使用jquery.validate插件上传带有验证的文件,并将文件存储到mySQL数据库中 以前,我没有使用多步骤表单设计,而是一步一页的设计,因此当用户单击提交按钮时,我会使用ifisset$\u POST['submit']和$\u文件通过PHP验证文件。下面是当用户单击submit按钮时将触发的PHP代码Javascript 带文件上传的多步骤表单,javascript,php,jquery,mysql,file-upload,Javascript,Php,Jquery,Mysql,File Upload,我有一个多步骤的表格。我想在这里实现的是允许用户使用jquery.validate插件上传带有验证的文件,并将文件存储到mySQL数据库中 以前,我没有使用多步骤表单设计,而是一步一页的设计,因此当用户单击提交按钮时,我会使用ifisset$\u POST['submit']和$\u文件通过PHP验证文件。下面是当用户单击submit按钮时将触发的PHP代码 if(isset($_POST['submit'])) { $allowedExts = array("mov", "mp4
if(isset($_POST['submit']))
{
$allowedExts = array("mov", "mp4", "mpeg", "wmv");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "video/quicktime") || ($_FILES["file"]["type"] == "video/mp4") || ($_FILES["file"]["type"] == "video/mpeg") || ($_FILES["file"]["type"] == "video/x-ms-wmv")) && in_array($extension, $allowedExts) && (!empty($_POST["title"])) && (!empty($_POST["description"])))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
// check if the file already exist in Uploaded folder
if (file_exists("uploaded/".$_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"]." already exists. ";
}
else
{
echo "<br />".$_FILES["file"]["name"]." has been uploaded! <br /><br />";
echo "Upload: ".$_FILES["file"]["name"]."<br />";
echo "Type: ".$_FILES["file"]["type"]."<br />";
echo "Size: ".($_FILES["file"]["size"] / 1024)." kB<br />";
echo "Stored in: "."uploaded/".$_FILES["file"]["name"];
move_uploaded_file($_FILES["file"]["tmp_name"], "uploaded/".$_FILES["file"]["name"]);
$name = $_FILES["file"]["name"];
$url = ""; //some URL
mysql_query("INSERT INTO video (name, title, description, url) VALUES ('$name', '$title', '$description', '$url')") or die(mysql_error());
}
}
}
else
{
if (!empty($_POST["description"]) && (!empty($_POST["title"])))
{
echo "Invalid file";
}
}
}
但现在,由于我已经将设计更改为多步骤形式,这种逻辑似乎不再有效。这是我的
我想把上传按钮的类型从type=button改为type=submits,这样我就可以使用我以前的PHP逻辑来处理文件并上传到数据库,但是这会导致我的多步骤表单停止进入下一步
有什么好主意或建议吗?如果您想避免重新加载页面,可以尝试通过隐藏的iframe发布表单,然后在加载时阅读响应。据我所知,这应该适用于所有浏览器
<iframe name="target_iframe">..</iframe>
<form target="target_iframe">..</form>
退房
如果您愿意放弃对旧浏览器的支持,您可以使用ajax发布文件。也许退房