将图像传递到ajax

时间:2016-09-10 08:04:43

标签: javascript php jquery ajax

在我遇到问题之前,我为我将要使用的术语所犯的错误道歉。 jQuery和学习新手!

所以我有一个包含两个文件,文本和文件类型的表单。

<form method="post" action="" enctype="multipart/form-data">
   text <input type='text' id="textf" /><br>
   images <input type='file' id="imagef" /><br>
   <button name="submit" type="submit" id="submit">Finish</button>
</form>

上传的图片必须进行压缩然后上传。 (我完成了那部分!)。然后,压缩后的图像将作为dataurl(?)保存在表单下方的页面上。

这种格式,

<img id="result_image" class="img_container" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD.... ">

现在,提交表单时,必须将生成的压缩图像上传到原始图像上。

我正在使用jquery这样做,但是我缺乏知识会妨碍这样做。这是我需要你帮助的地方,stackoverflow。

我已经走到这一步了,

$(document).ready(function(){
    $("#submit").click(function(e){
        e.preventDefault();

        var formData = {
            'textf'              : $('#textf').val(),
            'imagef'              : $('#result_image')[0]
        };

        $.ajax({
            type        : 'POST',
            url         : 'upload.php',
            data        : formData,
            dataType    : 'json',
            encode      : true
        })
    });
});

来自php脚本upload.php的响应是,

fweArray
(
    [textf] => fwe
)

图像不存在! 我做错了什么? 我感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以发布.src #result_image元素,以便将data URI压缩图像发送到服务器

var formData = {
  'textf' : $('#textf').val(),
  'imagef' : $('#result_image')[0].src
};