【问题标题】:File Upload using ajax and passing a variable使用 ajax 上传文件并传递变量
【发布时间】:2013-07-27 05:23:48
【问题描述】:

我正在使用 ajax 上传图片..它发生得很好..但问题是我无法通过 ajax 将当前的 album_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>

我通过 $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 传递到其他页面并将其插入到我的数据库中

【问题讨论】:

  • 您的脚本仍然容易受到任意文件上传和 SQL 注入的攻击。
  • 我知道..我稍后会处理..

标签: php ajax upload


【解决方案1】:
<input type="hidden" name="album-id" value="something" />

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

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

然后将其包含在您的 SQL 中。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-24
      • 2016-08-31
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 2022-01-22
      • 2011-08-18
      • 1970-01-01
      • 2018-06-23
      相关资源
      最近更新 更多