我拖放了文件的多个上传,除此之外,我还有一个输入文本字段,我需要上传文件时的值。我已经检查了这个问题(带有附加数据的jQuery文件上传(,但不符合我的需求。
下面是我的HTML代码。
<script type="text/javascript" src="custom/js/uploader.js"></script>
<div class="container">
<div class="row">
<div class="col-sm-3 col-md-6 col-lg-6">
<h3 class="alert alert-info">Drag and drop Multiple PDF Files</h3><br />
<div id="uploaded_file"></div>
<div class="file_drag_area alert alert-warning">
Drop Files Here
</div>
</div>
<input type="text" class="form-control" id="refNum" name="refNum"/>
</div>
</div>
我的j查询;
$(document).ready(function(){
$('.file_drag_area').on('dragover', function(){
$(this).addClass('file_drag_over');
return false;
});
$('.file_drag_area').on('dragleave', function(){
$(this).removeClass('file_drag_over');
return false;
});
$('.file_drag_area').on('drop', function(e){
e.preventDefault();
$(this).removeClass('file_drag_over');
var formData = new FormData();
var files_list = e.originalEvent.dataTransfer.files;
var refNum = $("#refNum").val();
for(var i=0; i<files_list.length; i++)
{
formData.append('file[]', files_list[i]);
}
$.ajax({
url:"php_action/upload.php",
method:"POST",
data: formData, refNum: refNum,
contentType:false,
cache: false,
processData: false,
success:function(data){
$('#uploaded_file').html(data);
$(".alert-success").delay(500).show(10, function() {
$(this).delay(3000).hide(10, function() {
$(this).remove();
});
}); // /.alert
}
})
});
});
最后,我的PHP。
$output = '';
if(isset($_FILES['file']['name'][0]))
{
$refNum = $_POST["refNum"];
foreach($_FILES['file']['name'] as $keys => $values)
{
$random_no = rand();
$split_file_name = explode('.',$values);
$new_file_name = $random_no.$split_file_name[0].'.'.$split_file_name[1];
if(move_uploaded_file($_FILES['file']['tmp_name'][$keys], 'PDFUpload/' . $new_file_name))
{
$sql = "INSERT INTO upload (order_id, file_name, uploaded_date)
VALUES('$refNum','".$new_file_name."','$dateTimeNiBorgy')";
$result = mysqli_query($connect, $sql);
if($result == 1)
{
$msg = '<div class="alert alert-success">Files uploaded successfully!</div>';
}
else
{
$msg = '<div class="alert alert-danger">Some error occurred, Please try again!</div>';
}
$output = $msg;
}
}
}
echo $output;
现在,用于上传和保存到数据库的脚本工作正常。 但是拖动文件后,我遇到了一个错误
注意:未定义的索引:C:\xampp\htdocs\php_action\upload.php 第 21 行中的 refNum
我的问题是,如何在上传后立即获取refNum
输入字段的值?
在你的 js 文件中: 属性data
必须是字符串或对象。
使用以下方法更改数据属性:
data:{"formData":formData, "refNum":refNum},