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

时间:2013-07-26 19:51:07

标签: php ajax upload

我使用ajax上传图片..它发生得非常好..但问题是我无法将当前的album_id通过ajax传递到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>

我使用$ album_id = @ $ _ GET ['image_album']获取当前相册ID;

我的php代码:image_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);
            }

        }

我不明白在ajax中我会在哪里插入$ album_id以及如何在我的php页面中获取它...我知道我的脚本对于sql注入是不可思议的..我可以稍后处理..但是暂时我想知道如何将$ album_id传递到另一页并将其插入我的数据库

2 个答案:

答案 0 :(得分:2)

<input type="hidden" name="album-id" value="something" />

使用输入传递值与任何其他值一样。然后在$ _POST中访问它。

if ( isset($_POST['album-id']) ) {
    $album_id = $_POST['album-id'];
}

然后将其包含在SQL中。

答案 1 :(得分:0)

您正在使用“POST”将数据发送到php文件(image_send.php)。

你需要使用$ _POST ['image_album']而不是$ _GET ['image_album']。