如何在文件上传后提交表单,同时在文章中包含一些数据[]
您好,我有以下html表单,我正在使用它来上传.xlx文件。如何在文件上传后提交表单,同时在文章中包含一些数据[]
<form action="dashboard.php" method="post" enctype="multipart/form-data">
<div class="file-upload">
<div class="col-md-12 m-b-15">
<div class="col-md-3">
Note No :
</div>
<div class="col-md-8">
<input class=" form-control m-b-15 " id="note_number_for_the_alert" name="note_number_for_the_alert" readonly="">
</div>
</div>
<div class="row">
<div class="col-md-8 m-l-10">
<div class=" formError validateAlert" id="alert_to_upload_file_in_vendor_delivery_note_management" >
<div class="formErrorContent" id="test">please Select the .XLSX file <br></div>
<div class="formErrorArrow"></div>
</div>
<input type="file" id="file" name="file2" multiple="multiple" />
<p style="text-align: right; margin-top: 20px;">
<input type="submit" value="Upload Files" name="submit2" class= "btn btn-success" />
</p>
</div>
<div class="col-md-4"></div>
</div>
</div>
</form>
以下用于上传文件的phpexcel代码行。
$uploadedStatus = 0;
$name2 = '';
if (isset($_POST["submit2"])) {
if (isset($_FILES["file2"])) {
if ($_FILES["file2"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
} else {
if (file_exists($_FILES["file2"]["name"])) {
unlink($_FILES["file2"]["name"]);
$uploadedStatus = 2;
}
$name = basename($_FILES['file2']['name']);
$name2 = explode('.', $name);
if ($name2[count($name2) - 1] == 'csv' || $name2[count($name2) - 1] == 'xlsx') {
$target_path = "uploads/programming/";
$target_location = $target_path . basename($_FILES['file2']['name']);
move_uploaded_file($_FILES["file2"]["tmp_name"], $target_location);
$uploadedStatus = 1;
}
}
} else {
echo "No file selected <br />";
}
}
}
这两个工作完全分开,没有文件上传问题。 但我需要发送一些值到dashboard.php使用相同的时间。
当前文件正在上传页面重定向到dashboard.php,任何建议提交表单一次获得$ uploadedStatus = 1文件上传过程完成后。
要回答你的问题,你可以使用JQuery上传文件。所以页面不会重新加载。当你按下上传按钮时,显示一个加载图像告诉用户你正在上传。
<form action="dashboard.php" method="post" enctype="multipart/form-data" id="form_id">
JQuery的&阿贾克斯
function submitForm() {
var formData = new FormData($("#form_id"));
// show your loader image
$.ajax({
url: upload.php,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
// hide your loader image
},
cache: false,
contentType: false,
processData: false
});
}
注:FORMDATA将无法正常工作在旧的浏览器。有一些退步,阅读此thread
我同意你Rinto,不错的建议,但更多的事情来澄清如何使用$ target_path =“uploads/programming /”;而jquery upload.i则表示如何将文件添加/上传到特定文件夹。 –
ajax做了什么,它只是调用PHP页面upload.php。 Ajax不会上传任何东西,这是您的PHP脚本。所以你可以调整你的PHP文件来改变目录,无论你想要的方式。记住这一点,而不是使用Ajax的浏览器POST,其余的是PHP –
您使用纯'PHP'或您使用'JavaScript'或'AJAX'来发送和接收数据吗?在'class =“窗体控件中有一个错字m-b-15 id =”'这是一个复制粘贴还是你输入的?这也是这个问题的完整代码基础吗? – Sand
使用JS onclick事件并推送消息。 –
@Sand我使用纯php在文件上传后从一个页面提交数据到另一个页面。 PLZ检查修改,我只使用该问题的代码。 –