目标:
1.在提交上载表单时包含id(在此示例中为id = 1),以便可以在submit.php中访问它。
2.根据id将文件名插入sql db。
表格:
<form action="#" enctype="multipart/form-data" method="post">
<input type="hidden" name="name" id="1">
<input type="file" name="upload" id="upload" >
<input class="button" type="submit" name="submit" value="Submit Content">
</form>
脚本:
$('input[type=file]').on('change', prepareUpload);
$('form').on('submit', uploadFiles);
function prepareUpload(event)
{
files = event.target.files;
}
function uploadFiles(event)
{
event.stopPropagation();
event.preventDefault();
var data = new FormData();
$.each(files, function(key, value)
{
data.append(key, value);
});
$.ajax({
url: 'submit.php?files',
type: 'POST',
data: data,
cache: false,
dataType: 'json',
processData: false,
contentType: false,
success: function(data, textStatus, jqXHR)
{
console.log('Successfully uploaded the file');
},
error: function(jqXHR, textStatus, errorThrown)
{
console.log('Failed to upload the file');
}
});
}
submit.php
<?php
$data = array();
if(isset($_GET['files']))
{
$error = false;
$files = array();
$uploaddir = 'uploads/';
foreach($_FILES as $file)
{
if(move_uploaded_file($file['tmp_name'], $uploaddir .basename($file['name'])))
{
$files[] = $uploaddir .$file['name'];
}
else
{
$error = true;
}
}
$data = ($error) ? array('error' => 'There was an error uploading your files') : array('files' => $files);
}
else
{
$data = array('success' => 'Form was submitted', 'formData' => $_POST);
}
echo json_encode($data);
?>
非常感谢!
答案 0 :(得分:2)
将隐藏字段更改为:
<input type="hidden" name="id" value="1">
答案 1 :(得分:2)
您可以将隐藏字段用作
<input type="hidden" name="my_id" id="my_id" value="1">
现在在你的jquery中只需使用
var my_id = $('#my_id').val();
并使用data