如何将POST参数从javascript发送到php
我在将POST参数从javascript发送到php页面时遇到问题。所有的脚本工作正常,但我需要进一步的行动后参数。在php$\u中,POST数组总是显示为空。我做错了什么?以下是我目前的代码: HTML:如何将POST参数从javascript发送到php,php,jquery,Php,Jquery,我在将POST参数从javascript发送到php页面时遇到问题。所有的脚本工作正常,但我需要进一步的行动后参数。在php$\u中,POST数组总是显示为空。我做错了什么?以下是我目前的代码: HTML: 选择图像 Javascript: $(document).ready(function(){ $(document).on('change', '#file', function(){ var name = document.getElementById("file&
选择图像
Javascript:
$(document).ready(function(){
$(document).on('change', '#file', function(){
var name = document.getElementById("file").files[0].name;
var form_data = new FormData();
var ext = name.split('.').pop().toLowerCase();
if(jQuery.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
alert("Invalid Image File");
}
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("file").files[0]);
var f = document.getElementById("file").files[0];
var fsize = f.size||f.fileSize;
if(fsize > 2000000) {
alert("Image File Size is very big");
}
else {
form_data.append("file", f);
$.ajax({
url:"upload.php",
method:"POST",
data: form_data,
contentType: false,
cache: false,
processData: false,
beforeSend:function(){
$('#uploaded_image').html("<label class='text-success'>Image Uploading...</label>");
},
success:function(data) {
$('#uploaded_image').html(data);
}
});
}
});
});
$(文档).ready(函数(){
$(document).on('change','#file',function(){
var name=document.getElementById(“文件”).files[0]。名称;
var form_data=new FormData();
var ext=name.split('.').pop().toLowerCase();
if(jQuery.inArray(ext、['gif'、'png'、'jpg'、'jpeg'])==-1){
警报(“无效图像文件”);
}
var of reader=new FileReader();
readAsDataURL(document.getElementById(“文件”).files[0]);
var f=document.getElementById(“文件”).files[0];
var fsize=f.size | | f.fileSize;
如果(fsize>2000000){
警报(“图像文件大小非常大”);
}
否则{
表格_data.append(“文件”,f);
$.ajax({
url:“upload.php”,
方法:“张贴”,
数据:表格数据,
contentType:false,
cache:false,
processData:false,
beforeSend:function(){
$(“#上传的_图像”).html(“图像上传…”);
},
成功:功能(数据){
$('#上传的"图像').html(数据);
}
});
}
});
});
和PHP:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES['file'])) {
$errors = [];
$extensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
echo '$_FILES array: ';
print_r(array_values($_FILES));
echo '<br>';
echo '$_POST array: ';
print_r(array_values($_POST));
echo '<br>';
}
// rest of code
}
if($\u服务器['REQUEST\u METHOD']='POST'){
如果(isset($\u文件['file'])){
$errors=[];
$extensions=['jpg','jpeg','png','gif','pdf'];
回显“$\u文件数组:”;
打印(数组值($文件));
回声“
”;
回显“$”后数组:”;
打印(数组值($_POST));
回声“
”;
}
//代码的其余部分
}
请将以下内容另存为文件:upload.php在http服务器(例如xampp)文件夹中
然后在浏览器上打开
<html>
<body>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES['file'])) {
$errors = [];
$extensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
echo '$_FILES array: ';
print_r(array_values($_FILES));
echo '<br>';
echo '$_POST array: ';
print_r(array_values($_POST));
echo '<br>';
}
// rest of code
}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).on('change', '#file', function(){
var name = document.getElementById("file").files[0].name;
var form_data = new FormData();
var ext = name.split('.').pop().toLowerCase();
if(jQuery.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
alert("Invalid Image File");
}
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("file").files[0]);
var f = document.getElementById("file").files[0];
var fsize = f.size||f.fileSize;
if(fsize > 2000000) {
alert("Image File Size is very big");
}
else {
form_data.append("file", f);
$.ajax({
url:"./upload.php",
method:"POST",
data: form_data,
contentType: false,
cache: false,
processData: false,
beforeSend:function(){
$('#uploaded_image').html("<label class='text-success'>Image Uploading...</label>");
},
success:function(data) {
$('#uploaded_image').html(data);
}
});
}
});
});
</script>
<div class="container" style="width:700px;">
<label>Select Image</label>
<input type="file" name="file" id="file" />
<br /><br />
<span id="uploaded_image"></span>
</div>
</body>
</html>
我确定了你的头衔。Java和Javascript之间有很大的区别,你所做的就是发送一个文件。它们不会出现在
$\u POST
-数组中。它们位于$\u文件
数组中(您也会转储该数组)。里面有什么?谢谢你的修复。我对编码很陌生,所以我得学很多。下面是关于我的问题的更多细节。
<html>
<body>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES['file'])) {
$errors = [];
$extensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
echo '$_FILES array: ';
print_r(array_values($_FILES));
echo '<br>';
echo '$_POST array: ';
print_r(array_values($_POST));
echo '<br>';
}
// rest of code
}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).on('change', '#file', function(){
var name = document.getElementById("file").files[0].name;
var form_data = new FormData();
var ext = name.split('.').pop().toLowerCase();
if(jQuery.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
alert("Invalid Image File");
}
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("file").files[0]);
var f = document.getElementById("file").files[0];
var fsize = f.size||f.fileSize;
if(fsize > 2000000) {
alert("Image File Size is very big");
}
else {
form_data.append("file", f);
$.ajax({
url:"./upload.php",
method:"POST",
data: form_data,
contentType: false,
cache: false,
processData: false,
beforeSend:function(){
$('#uploaded_image').html("<label class='text-success'>Image Uploading...</label>");
},
success:function(data) {
$('#uploaded_image').html(data);
}
});
}
});
});
</script>
<div class="container" style="width:700px;">
<label>Select Image</label>
<input type="file" name="file" id="file" />
<br /><br />
<span id="uploaded_image"></span>
</div>
</body>
</html>
Select Image
$_FILES array: Array ( [0] => Array ( [name] => zc.jpg [type] => image/jpeg [tmp_name] => C:\xampp\tmp\php9437.tmp [error] => 0 [size] => 17436 ) )
$_POST array: Array ( )