jQuery文件上传-$ _FILES数组为空 [英] Jquery File Upload - $_FILES array empty
问题描述
使用Jquery文件上传.正在工作"并正在上传图片,显示拇指.但是,如果我转储$ _FILES时在处理程序中提交表单,则那里什么也没有.
Using Jquery File Upload. It's 'working' and uploading images & displaying the thumbs. However when I Submit the form in the handler if I dump $_FILES there's nothing there.
我基本上使用Basic Plus示例,将autoUpload设置为false.我希望我可以使用它来让用户选择多个图像.然后,一旦提交表单,就将它们上载,并且如果页面上有X个文件上载按钮,则处理它们的方式基本上与处理它们的方式相同.
I'm basically using the Basic Plus example with autoUpload set to false. I was hoping that I would be able to use this to have users select multiple images. Then have them uploaded once the form was submitted and handle them basically the same way I would handle them if I had X number of file upload buttons on a page.
使用autoUpload = TRUE上载它们也可以.我试过了,在POST或FILES中都没有看到任何东西.
Uploading them using autoUpload=TRUE also works as well. I tried that and didn't see anything in POST or FILES either.
对使这两种方法都起作用的评论会很棒.
Comments to get either method working would be great.
这是我下面的js.
$('#fileupload').fileupload({
url: url,
method: 'POST',
dataType: 'json',
autoUpload: false,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
maxFileSize: 5000000, // 5 MB
// Enable image resizing, except for Android and Opera,
// which actually support image resizing, but fail to
// send Blob objects via XHR requests:
disableImageResize: /Android(?!.*Chrome)|Opera/
.test(window.navigator.userAgent),
previewMaxWidth: 100,
previewMaxHeight: 100,
previewCrop: true
}).on('fileuploadadd', function (e, data) {
data.context = $('<div/>').appendTo('#files');
$.each(data.files, function (index, file) {
var node = $('<p/>')
.append($('<span/>').text(file.name));
node.appendTo(data.context);
});
}).on('fileuploadprocessalways', function (e, data) {
var index = data.index,
file = data.files[index],
node = $(data.context.children()[index]);
if (file.preview) {
node
.prepend('<br>')
.prepend(file.preview);
}
if (file.error) {
node
.append('<br>')
.append($('<span class="text-danger"/>').text(file.error));
}
if (index + 1 === data.files.length) {
data.context.find('button')
.text('Upload')
.prop('disabled', !!data.files.error);
}
}).on('fileuploadprogressall', function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
}).on('fileuploaddone', function (e, data) {
$.each(data.result.files, function (index, file) {
if (file.url) {
var link = $('<a>')
.attr('target', '_blank')
.prop('href', file.url);
$(data.context.children()[index])
.wrap(link);
} else if (file.error) {
var error = $('<span class="text-danger"/>').text(file.error);
$(data.context.children()[index])
.append('<br>')
.append(error);
}
});
}).on('fileuploadfail', function (e, data) {
$.each(data.files, function (index, file) {
var error = $('<span class="text-danger"/>').text('File upload failed.');
$(data.context.children()[index])
.append('<br>')
.append(error);
});
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
这是我的html
<form action="/submit_form" accept-charset="utf-8" class="form-horizontal review-validate-form" id="review-form" autocomplete="off" enctype="multipart/form-data" method="POST"><div style="display:none">
<div class="control-group">
<label class="required control-label" for="first_name">Comments <span class="required">*</span></label>
<div class="controls">
<textarea name="comments" cols="40" rows="10" class="span8 required" id="comments" ></textarea> </div>
</div>
<!-- The fileinput-button span is used to style the file input field as button -->
<span class="btn btn-success fileinput-button">
<i class="glyphicon glyphicon-plus"></i>
<span>Add files...</span>
<!-- The file input field used as target for the file upload widget -->
<input id="fileupload" type="file" name="files[]" multiple>
</span>
<br>
<br>
<!-- The global progress bar -->
<div id="progress" class="progress">
<div class="progress-bar progress-bar-success"></div>
</div>
<!-- The container for the uploaded files -->
<div id="files" class="files"></div>
<br>
<div class="form-actions" style="">
<input type="submit" value="Submit Review" name="submitReview" class="btn btn-primary btn-large">
</div>
</form>
推荐答案
您需要设置正确的数据类型 dataType:'json', 多部分表格数据 您不能使用数据类型json属性设置$ _FILES变量
You need the set correct datatype dataType: 'json', to multipart form data you cant set $_FILES variable with data type json attribute
这篇关于jQuery文件上传-$ _FILES数组为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!