Php 使用ajax上传文件并传递变量

Php 使用ajax上传文件并传递变量,php,ajax,upload,Php,Ajax,Upload,我正在使用ajax上传图片。。事情进展得很顺利。但问题是我无法通过ajax将当前的唱片集id传递到php页面,那里有上传脚本。有人能帮忙吗?这是我的密码: index.php $(function () { $('body').on('click', '.upload', function(){ var form = new FormData($('#myform')[0]); $.ajax({

我正在使用ajax上传图片。。事情进展得很顺利。但问题是我无法通过ajax将当前的唱片集id传递到php页面,那里有上传脚本。有人能帮忙吗?这是我的密码:

index.php

$(function () {

     $('body').on('click', '.upload', function(){   
            var form = new FormData($('#myform')[0]);

                $.ajax({
                url: 'image_send.php',
                type: 'POST',
                success: function (r) {
                    $('.container').html(r);
                },
                data: form,
                cache: false,
                contentType: false,
                processData: false
            });
        });
    });

<div id="image_upload_form">
<form enctype="multipart/form-data" id="myform">    
<input type="file" accept="image/*" multiple name="image[]" id="image" />
<input type="button" value="Upload images" class="upload" />
</form>
$(函数(){
$('body')。在('click','upload',函数()上{
var form=new FormData($('#myform')[0]);
$.ajax({
url:'image_send.php',
键入:“POST”,
成功:功能(r){
$('.container').html(r);
},
数据:表格,
cache:false,
contentType:false,
processData:false
});
});
});
我使用$album_id=@$_get['image_album']获取当前相册id

我的php代码:image\u send.php

foreach($_FILES['image']['tmp_name'] as $key => $tmp_name ){
    if(((@$_FILES['image']['type'][$key] == 'image/jpeg') ||
    (@$_FILES['image']['type'][$key] == 'image/jpg') || 
    (@$_FILES['image']['type'][$key] == 'image/png') ||
    (@$_FILES['image']['type'][$key] == 'image/tif') ||
    (@$_FILES['image']['type'][$key] == 'image/tiff') ||    
    (@$_FILES['image']['type'][$key] == 'image/gif') ||
    (@$_FILES['image']['type'] == 'image/png')) 
    && (@$_FILES['image']['size'][$key] < 1073741824))      //10 mb in bytes
    {
        if(file_exists("image/".@$_FILES['image']['name'][$key])){
        echo @$_FILES['image']['name'][$keys]."Already exists";
        }
        else{
    $picture = @$_FILES['image']['name'][$key];
    $image_upload_query = mysql_query("INSERT INTO image_upload_public VALUES('','$picture','Here I want to insert the current album_id')");
            if($image_upload_query){
            move_uploaded_file(@$_FILES['image']['tmp_name'][$key], "image/".$picture);
            }

        }
foreach($\u文件['image']['tmp\u名称']as$key=>$tmp\u名称){
如果((@$_文件['image']['type'][$key]=='image/jpeg')||
(@$_文件['image']['type'][$key]=='image/jpg')||
(@$_文件['image']['type'][$key]=='image/png')||
(@$_文件['image']['type'][$key]=='image/tif')||
(@$_文件['image']['type'][$key]=='image/tiff')||
(@$_文件['image']['type'][$key]=='image/gif')||
(@$_文件['image']['type']=='image/png'))
&&(@$_FILES['image']['size'][$key]<1073741824))//10 mb字节
{
如果(文件存在(“图像/”@$\u文件['image']['name'][$key])){
echo@$_文件['image']['name'][$keys].“已存在”;
}
否则{
$picture=@$_文件['image']['name'][$key];
$image\u upload\u query=mysql\u query(“插入到image\u upload\u公共值(“,$picture”,“我想在这里插入当前相册\u id”);
if($image\u upload\u query){
移动上传的文件(@$\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$key],“图像/”$picture);
}
}
我不知道在ajax中我将在何处插入$album_id,以及如何在我的php页面中获得它。我知道我的脚本是vulnerbale to sql injection。我可以稍后处理。但目前我想知道如何将$album_id传递到另一个页面并将其插入到我的数据库中

<input type="hidden" name="album-id" value="something" />
然后将其包含在SQL中。

您正在使用“POST”将数据发送到php文件(image\u send.php)


您需要使用$\u POST['image\u album']而不是$\u GET['image\u album']。

您的脚本仍然容易受到任意文件上载和SQL注入的攻击。我知道..我稍后会处理。。
if ( isset($_POST['album-id']) ) {
    $album_id = $_POST['album-id'];
}