我在JS中使用此代码我正在向php文件发送XHR post请求如何处理在PHP中获取文件和字符串?
我将使用字符串创建一个类似“Code / Math”的路径,然后将文件移动到该路径。
JavaScript
$( document ).ready(function() {
$('#Upload').click(function(){
var formData = new FormData();
var url = 'uploadFile.php';
var file = $("#file");
var xhr = new XMLHttpRequest();
formData.append('File',file[0].files[0]);
formData.append('Path','/Upload/Upload');
xhr.addEventListener('progress', function (e) {
var done = e.position || e.loaded, total = e.totalSize || e.total;
var percent = (Math.floor(done / total * 1000) / 10) + '%';
$('#uploadprogress').css('width', percent+'%');
}, false);
if (xhr.upload) {
xhr.upload.onprogress = function (e) {
var done = e.position || e.loaded, total = e.totalSize || e.total;
var percent = (Math.floor(done / total * 1000) / 10) + '%';
};
}
xhr.onreadystatechange = function (e) {
if (4 == this.readyState) {
$('#message').text(e.currentTarget.response);
$('#uploadprogress').css('width', '0%');
$('#file').val('');
}
};
xhr.open('post', url, true);
xhr.send(formData);
});
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('');
};
});
答案 0 :(得分:1)
在服务器上处理ajax请求时,将ajax视为表单提交。您处理它的方式与表单完全相同。对于POST请求,参数将在$_POST
,$_GET
中用于获取请求,文件将在$_FILES
下。虽然取决于ajax请求的确切形成/发送方式,但也存在异常,因为可以在请求正文中而不是作为参数发布数据,但这并不适用于您的情况。
<强> TL; DR:强>
使用$_POST["Path"]
和$_FILES["File"]