通过PHP和Jquery发布上传文件
我尝试使用Jquery通过Ajax和PHP上传一个文件,但它不起作用 这是我的HTML表单(我正在使用引导): 当我调试javascript并监视通过PHP和Jquery发布上传文件,php,jquery,ajax,forms,file-upload,Php,Jquery,Ajax,Forms,File Upload,我尝试使用Jquery通过Ajax和PHP上传一个文件,但它不起作用 这是我的HTML表单(我正在使用引导): 当我调试javascript并监视fileInput时,我可以看到类似Files:FilesList[1]0:file…这样的文件,但脚本只是停止,并且在控制台中不显示任何内容,甚至错误 PHP中的$\u文件var只是空的。(已选中指向的所有配置) 还尝试了fileInput.prop('files')[0]和新表单数据(formToSubmit),但我有同样的问题 我做错了什么?虽然
fileInput
时,我可以看到类似Files:FilesList[1]0:file…
这样的文件,但脚本只是停止,并且在控制台中不显示任何内容,甚至错误
PHP中的$\u文件
var只是空的。(已选中指向的所有配置)
还尝试了fileInput.prop('files')[0]
和新表单数据(formToSubmit)
,但我有同样的问题
我做错了什么?虽然不是同一个问题,但的答案(链接在@u_mulder的问题评论中)解决了我的问题 以下是功能代码:
$('#submit-edit-company').click(function(e) {
e.preventDefault();
var formToSubmit = $(this).parents('form#edit-company');
var dataToSend = new FormData(formToSubmit[0]);
var fileInput = formToSubmit.find('input[type="file"]')[0];
var fileData = fileInput.attr('files')[0];
console.log(fileData);
$.ajax({
url: 'app/editCompanyService',
data: dataToSend,
type: 'POST',
dataType: 'JSON',
contentType: false,
cache: false,
processData:false,
beforeSend: function () {},
success: function (return) {},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Error... " + textStatus + " " + errorThrown);
}
虽然不是同一个问题,但的答案(链接在@u_mulder的问题评论中)解决了我的问题 以下是功能代码:
$('#submit-edit-company').click(function(e) {
e.preventDefault();
var formToSubmit = $(this).parents('form#edit-company');
var dataToSend = new FormData(formToSubmit[0]);
var fileInput = formToSubmit.find('input[type="file"]')[0];
var fileData = fileInput.attr('files')[0];
console.log(fileData);
$.ajax({
url: 'app/editCompanyService',
data: dataToSend,
type: 'POST',
dataType: 'JSON',
contentType: false,
cache: false,
processData:false,
beforeSend: function () {},
success: function (return) {},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Error... " + textStatus + " " + errorThrown);
}
可能的副本您确定您使用的浏览器支持您尝试执行的操作吗?@u\u mulder。我没有看到这个问题。我将尝试提出的解决方案,看看问题是否相同。我认为是这样。我使用的是Firefox42,我没有看到任何不寻常的资源。您看到了吗?刚才注意到:如果您正在执行
formToSubmit.find('input[type=“file”]”)操作[0]
您得到了一个常规的dom元素引用,但是您没有fileInput.attr('files')[0]代码>在下一行。attr是一个jQuery函数。Do$(fileInput).attr('files')[0]代码>可能的副本您确定您使用的浏览器支持您尝试执行的操作吗?@u\u mulder。我没有看到这个问题。我将尝试提出的解决方案,看看问题是否相同。我认为是这样。我使用的是Firefox42,我没有看到任何不寻常的资源。您看到了吗?刚才注意到:如果您正在执行formToSubmit.find('input[type=“file”]”)操作[0]
您得到了一个常规的dom元素引用,但是您没有fileInput.attr('files')[0]代码>在下一行。attr是一个jQuery函数。Do$(fileInput).attr('files')[0]代码>
$('#submit-edit-company').click(function(e) {
e.preventDefault();
var formToSubmit = $(this).parents('form#edit-company');
var dataToSend = new FormData(formToSubmit[0]);
var fileInput = formToSubmit.find('input[type="file"]')[0];
var fileData = fileInput.attr('files')[0];
console.log(fileData);
$.ajax({
url: 'app/editCompanyService',
data: dataToSend,
type: 'POST',
dataType: 'JSON',
contentType: false,
cache: false,
processData:false,
beforeSend: function () {},
success: function (return) {},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Error... " + textStatus + " " + errorThrown);
}