【问题标题】:JSON to PHP sending/ receiving variables with image dataJSON 到 PHP 发送/接收带有图像数据的变量
【发布时间】:2016-10-27 15:24:15
【问题描述】:

更新:已解决! (下面回答) 我正在尝试使用我正在上传的图像文件添加变量。我可以很好地上传图片,但我似乎无法将想要的 vars 发送到 php 并将它们发回等等。

我希望至少将这个名为 $Destination 的变量连同正在工作的图像数据以及其他变量一起发送到 php。下面是我要发送的线路。

var Dest = '<? echo $Destination;?>';

这是我的脚本:

 function myFunction() {
    var = Dest: '<? echo $Destination;?>'; // This one
    var file_data = $('#ImageuploadBtn').prop('files')[0];   
    var form_data = new FormData();                  
    form_data.append('file', file_data);

    $.ajax({
                url: 'admin/myUpload.php',
                dataType: 'text',  
                cache: false,
                contentType: false,
                processData: false,
                data: form_data,                         
                type: 'POST',
                success: function(php_script_response)
                { 
                    console.log(php_script_response);
                    var html = '<img src="../files/' + php_script_response + '" class="DisplayMainImage img-responsive">';

                    $( ".MainImage" ).replaceWith(html);
                }
     });

我的 PHP:

<?php
    if ( 0 < $_FILES['file']['error'] ) {
        echo 'Error: ' . $_FILES['file']['error'] . '<br>';
    }
    else {
        move_uploaded_file($_FILES['file']['tmp_name'], '../files/' . $_FILES['file']['name']);
        $Message = $_FILES['file']['name'];
        //// $Destination DOES NOT WORK
        $Destination = $_POST['Dest']; /// NO WORK
        echo $Message;

    }
?>

已解决问题:我需要这些行。

var Dest = '<? echo $Destination;?>';
    form_data.append('Dest', Dest); 

【问题讨论】:

  • 有点混乱,除了图片,你没有发送任何东西,你至少尝试form_data.append('Dest', Dest);添加数据吗?
  • 做到了。天啊。谢谢。
  • 实际上,考虑到此处的时间戳,@adeneo 应该是发布答案的人。我认为这很公平。
  • 是的,@adeneo,请提出你的答案,我会给你信用。这就是为我做的。
  • Marc B 的想法似乎是对的,接受吧

标签: php jquery html json ajax


【解决方案1】:

这是一个语法错误:

var = Dest: '<? echo $Destination;?>'; // This one
          ^---

这将杀死整个 &lt;script&gt; 块,使您的 ajax 调用永远不会发生。

即使该变量分配有效,您也永远不会在您的 ajax 代码中使用它。你有一个formdata,但你放在那里的唯一的东西就是那个文件项。

【讨论】:

    【解决方案2】:

    首先

    var = Dest: '<? echo $Destination;?>';
    

    会渲染成这样的:

    var = Dest: 'some text from $Destination php var';
    

    这是不正确的 js 语法。由于是语法错误,脚本执行将在此时停止。也许你的意思是这样的:

    var dest = '<? echo $Destination;?>';
    

    您可以在浏览器中打开开发者工具并在 js 控制台上查看呈现的源代码。它会显示脚本错误。例如,在 chrome 中,您按 ctrl + shift + i 并转到控制台选项卡。

    【讨论】:

      【解决方案3】:

      这是需要的。

      var Dest = '<? echo $Destination;?>';
      form_data.append('Dest', Dest); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-02
        • 2013-02-14
        相关资源
        最近更新 更多