Javascript 如何通过ajax请求将字符串和文件一起发送到php文件?
我得到了一个php文件,它将文件保存到服务器上的一个名为upload的文件夹中。它通过ajax请求接收文件。到目前为止,一切正常。下一个要求是随文件发送一个字符串,以指定上传文件夹和子文件夹,如“Course/Math”,如何实现 JSJavascript 如何通过ajax请求将字符串和文件一起发送到php文件?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我得到了一个php文件,它将文件保存到服务器上的一个名为upload的文件夹中。它通过ajax请求接收文件。到目前为止,一切正常。下一个要求是随文件发送一个字符串,以指定上传文件夹和子文件夹,如“Course/Math”,如何实现 JS $( document ).ready(function() { $('#Upload').click(function(){ var formData = new FormData($('form')[0]); $.ajax({
$( document ).ready(function() {
$('#Upload').click(function(){
var formData = new FormData($('form')[0]);
$.ajax({
url: 'uploadFile.php',
type: 'POST',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress',progressHandling, false);
}
return myXhr;
},
success: completeHandler,
data: formData,
cache: false,
contentType: false,
processData: false
});
});
var progressHandling = function(e){
if(e.lengthComputable){
var percent = Math.round((e.loaded / e.total) * 100);
$('#uploadprogress').css('width', percent+'%');
}
}
var completeHandler = function(data){
$('#message').text(data);
$('#uploadprogress').css('width', '0%');
$('#file').val('');
};
});
PHP
<?php
if ($_FILES["file"]["error"] > 0) {
} else {
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo true;
}
?>
使用在ajax调用中发送表单数据的示例
var formData = $('#myform').serialize;
$.ajax({
url: 'uploadFile.php',
type: 'POST',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress',progressHandling, false);
}
return myXhr;
},
success: completeHandler,
data: formData,
cache: false,
contentType: false,
processData: false
});
如果要添加字符串,只需使用以下命令:
var value = 'test';
var formData = $('#myform').serialize+"&newstring="+value;
更新
无法通过ajax上传文件。
您可以上传文件,无需使用或插件刷新页面
详情请参阅
此外,请在此处提交一些详细说明:
$("#FileUpload").change(function (e) {
var uploadFile = e.target.files;
if (uploadFile.length > 0) {
if (window.FormData !== undefined) {
var data = new FormData();
for (var x = 0; x < uploadFile.length; x++) {
data.append("file" + x, uploadFile[x]);
}
data.append("ELEMENTCLASSNAME", $("#ELEMENTID").val());
$.ajax({
type: "POST",
url: 'URL',
contentType: false,
processData: false,
data: data,
success: function (result) {
alert(result);
},
failure: function (result) {
alert(result);
},
error: function (xhr, status, p3, p4) {
var err = "Error " + " " + status + " " + p3 + " " + p4;
if (xhr.responseText && xhr.responseText[0] == "{")
err = JSON.parse(xhr.responseText).Message;
console.log(err);
}
});
} else {
alert("This browser doesn't support HTML5 file uploads!");
}
}});
我如何在php中接收这些信息$_文件[]在这里不起作用,对吗?
var versionName = Request["ELEMENTCLASSNAME"];