javascript - 使用ajax上传图片

标签 javascript jquery ajax

我知道,有很多教程,但我不知道如何使用它们。

我有一个用于文件上传的输入表单:

<input onChange="userPreviewImage(this)" type="file" accept="image/*" style="display:none"/>

这是我的 Javascript 代码

function userPreviewImage (fileInput) {
    save = true;
    var files = fileInput.files;
    var file = files[0];
    current = file;
    var imageType = /image.*/;
    var img = document.createElement("img");

    img.classList.add("obj");
    img.classList.add("preview");
    img.file = file;

    var reader = new FileReader();
    reader.onload = (function(aImg) { 
        return function(e) { 
            aImg.src = e.target.result; 
        }; 
    })(img);
    reader.readAsDataURL(file);
}

结果我有img ,这是一个对象 <img src="data:image/png;base64...">我可以打印出来。

我已经使用它一段时间了,但现在我需要更改工作流程。 我现在的目标不是打印图像,而是将其源发送到服务器(服务器代码工作正常)。 我无法弄清楚如何从我所拥有的(只是 data:image/png;base64... 部分)中获取图像源。有人可以给我提示吗?

最佳答案

尝试将 data URI aImg 作为 String 发送到服务器

window.onload = function () {
    this.userPreviewImage = function (fileInput) {
        var files = fileInput.files;
        var file = files[0];
        var reader = new FileReader();
        reader.onload = function (aImg) {
            $.post("/echo/html/", {
                html: aImg.target.result
            })
            .then(function (data, textStatus, jqxhr) {
                console.log(data, textStatus);
            }, function(jqxhr, textStatus, errorThrown) {
                console.log(textStatus, errorThrown);
            })
        };
        reader.readAsDataURL(file);
    }
};

jsfiddle http://jsfiddle.net/8gjb82b6/1/

关于javascript - 使用ajax上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29999490/

相关文章:

javascript - Sails/Waterline 中带有字符串数组的模型

javascript - 如何在 React 中类组件的实例方法中模拟 fetch?

javascript - 根据状态显示按钮而不是文本

javascript - 判断浏览器是否为IE最简单、最好的方法是什么?

javascript - 在AJAX加载后,以模式关闭方式停止YouTube视频

php - 在服务器上处理需要很长时间的 AJAX 文件的最佳流程

javascript - 单击按钮时重置 JavaScript 计时器

javascript - 调整应用程序的 Canvas 大小

javascript - 基于滑动导航至页面

javascript - 如何使用随机TOKEN通过AJAX重新加载PHP脚本,url被缓存?