Javascript 如何在jquery和HTML中以复杂的输入形式上传文件
我知道这么多重复的问题。但我不知道,如何用复杂的表单和表单中的数组上传它。这是我的html: 这个jquery:Javascript 如何在jquery和HTML中以复杂的输入形式上传文件,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我知道这么多重复的问题。但我不知道,如何用复杂的表单和表单中的数组上传它。这是我的html: 这个jquery: function saveDraft(){ var scope = $('#scope').val(); var secrecy = $('#secrecy').val(); var priority = $('#prio').val(); var cc = $('#cc').val(); var sub
function saveDraft(){
var scope = $('#scope').val();
var secrecy = $('#secrecy').val();
var priority = $('#prio').val();
var cc = $('#cc').val();
var subject = $('#form-field-subject').val();
var msg = $('.wysiwyg-editor')[0].innerHTML;
var attachment = document.getElementById('attachment');
var refnd = $('#refnd').val();
var refarsip = $('#refarsip').val();
var from = $('#from').val();
var approval = [];
$('.approval :selected').each(function(i, selected){
approval[i] = $(selected).val();
});
var receiver = [];
$('.for :selected').each(function(i, selected){
receiver[i] = $(selected).val();
});
$.ajax({
type: 'post',
url: '<?php echo $this->baseurl; ?>/memo/saveDraft',
data: {
scope : scope,
secrecy : secrecy,
priority : priority,
from : from,
approval : approval,
receiver : receiver,
cc : cc,
subject : subject,
msg : msg,
attachment : formData,
refnd : refnd,
refarsip : refarsip
}
函数saveDraft(){
var scope=$('#scope').val();
var security=$('#security').val();
var priority=$('#prio').val();
var cc=$('#cc').val();
var subject=$('#表单字段subject').val();
var msg=$('.wysiwyg编辑器')[0].innerHTML;
var attachment=document.getElementById('attachment');
var refnd=$('#refnd').val();
var refarsip=$('#refarsip').val();
var-from=$('#from').val();
风险值批准=[];
$('.approval:selected')。每个(功能(i,selected){
批准[i]=$(选定).val();
});
var接收器=[];
$('.for:selected')。每个(函数(i,selected){
接收器[i]=$(选定).val();
});
$.ajax({
键入:“post”,
url:“/memo/saveDraft”,
数据:{
范围:范围,,
保密:保密,
优先:优先,
from:from,,
批准:批准,
接受者:接受者,,
抄送:抄送,,
主题:主题,,
味精:味精,,
附件:formData,
参考文献:参考文献,
重构:重构
}
试试这个:
HTML:
Php:
这将向服务器上载一个文件。进行一些更改,以便您也可以上载多个文件。您需要将formData设置为jQuery的数据,并且当前数据中的其他值需要在formData中。是否可能通过我从多个select中拥有多个数据?@jcubicYou不在任何位置创建formData。您需要创建的实例formData并附加文件和其他属性的值。您需要尝试迭代文件并使用
formData.append('attachment[],file)
了解如何使用formData
<input id="pic" type="file" name="pic" />
<button id="upload">Upload</button>
$('#upload').on('click', function() {
var file_data = $('#pic').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
url : 'upload.php', // point to server-side PHP script
dataType : 'text', // what to expect back from the PHP script, if anything
cache : false,
contentType : false,
processData : false,
data : form_data,
type : 'post',
success : function(output){
alert(output); // display response from the PHP script, if any
}
});
$('#pic').val(''); /* Clear the file container */
});
<?php
if ( $_FILES['file']['error'] > 0 ){
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']))
{
echo "File Uploaded Successfully";
}
}
?>