我正在尝试在a question I asked yesterday的基础上构建。
我可以使用ajax方法将文件传递给PHP。但我需要能够将文件名更改为预订编号。由于某种原因,预订没有被传递到PHP脚本。因此,我尝试了以下操作:
$('#uploadBtn').on('click', function()
{
var form_data = new FormData();
form_data.append("file", document.getElementById('pdfFile').files[0]);
var booking = $('#bookingNum').val();
var partner = $('#partnerCode').val();
$.post('process/fileUpload.php', {booking:booking, partner:partner}, function(data)
{
// Wasn't sure if I needed anything here
console.log(data);
});
$.ajax({
url: 'process/fileUpload.php',
method:"POST",
data: form_data,
contentType: false,
cache: false,
processData: false,
success: function(data){console.log(data);},
error: function(jqHHR, textStatus, errorThrown){console.log('fail: ' + errorThrown);}
});
});
正如您在上面注意到的,我必须使用$.post方法将预订和合作伙伴发送到php脚本。
然后,我使用$.ajax将form_data发送到相同的脚本。
(我不能在昨天提出的一项议案中做到这一点。所以这是我第二次尝试完成这项工作。如果有办法在一个动作中发送所有信息,请参考我上面链接的问题。)
因此,在PHP脚本中,我可以通过几个函数获得所需的所有项:
<?php
// from the $.post method
if(isset($_POST['booking']))
{
$booking = $_POST['booking'];
$partner = $_POST['partner'];
getInfo($booking);
}
// from the $.ajax method
if($_FILES['file'])
{
$file = var_dump($_FILES['file']);
getFile($file);
}
function getInfo($booking)
{
return $booking;
}
function getFile($file)
{
return $file;
}
?>
我知道这不是很好,但我能够获得预订(我现在不需要合作伙伴),我也能够获得文件信息。
我需要做的是将文件重命名为booking,然后最后将其上载到所需的目录。
我不确定是否必须组合这些函数,但我确实尝试过,但都没有用。
如上所述,我能够在PHP脚本中获得预订和文件信息。现在,我该如何将文件重命名为booking?
发布于 2018-06-23 01:17:14
要修复ajax请求(尤其是非法调用),请使用以下javascript代码
$('#uploadBtn').on('click', function()
{
var form_data = new FormData();
form_data.append("file", document.getElementById('pdfFile').files[0]);
form_data.append('booking', $('#bookingNum').val());
form_data.append('partner', $('#partnerCode').val());
$.ajax({
type: "POST",
url: 'process/fileUpload.php',
data: form_data,
processData: false,
contentType: false,
success: function(data) { console.log(data); }
});
});
注意processData: false
和contentType: false
的用法
发布于 2018-06-23 01:00:08
因为您使用form_data.append()
将文件数据添加到formdata。您有没有想过也要用它来添加预订和合作伙伴值?
$('#uploadBtn').on('click', function()
{
var form_data = new FormData();
form_data.append("file", document.getElementById('pdfFile').files[0]);
form_data.append('booking', $('#bookingNum').val());
form_data.append('partner', $('#partnerCode').val());
$.post('process/fileUpload.php', form_data, function(data)
{
console.log(data);
});
});
https://stackoverflow.com/questions/50992461
复制相似问题